Date: Mon, 2 May 2016 22:42:47 +0200 From: Sebastian Wolfgarten <sebastian@wolfgarten.com> To: Matthias Fechner <idefix@fechner.net>, freebsd-questions@freebsd.org Subject: Re: ZFS migration - New pool lost after reboot Message-ID: <6E1B2BCF-3B5C-4D18-9152-FE68711B2B43@wolfgarten.com> In-Reply-To: <2D936447-34C1-471B-8787-8075B19F8B28@wolfgarten.com> References: <0A383C91-FCBA-4B9E-A95A-157A13708125@wolfgarten.com> <72087b33-53f9-e298-1441-4988c2a5ecb3@fechner.net> <2D936447-34C1-471B-8787-8075B19F8B28@wolfgarten.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, just to follow-up on my own email earlier on - I managed to get the new pool booting by amending /boot/loader.conf as follows: root@vm:~ # cat /boot/loader.conf vfs.root.mountfrom="zfs:newpool/ROOT/default" kern.geom.label.gptid.enable="2" zfs_load="YES" However, when rebooting I can see he is using the new pool however I am running into issues as he can’t seem to find some essential files in /usr: Mounting local file systems eval: zfs not found eval: touch not found /etc/rc: cannot create /dev/null: No such file or directory /etc/rc: date: not found Here is what „zfs list“ looks like: root@vm:~ # zfs list NAME USED AVAIL REFER MOUNTPOINT newpool 385M 5.41G 19K /mnt/zroot newpool/ROOT 385M 5.41G 19K /mnt newpool/ROOT/default 385M 5.41G 385M /mnt newpool/tmp 21K 5.41G 21K /mnt/tmp newpool/usr 76K 5.41G 19K /mnt/usr newpool/usr/home 19K 5.41G 19K /mnt/usr/home newpool/usr/ports 19K 5.41G 19K /mnt/usr/ports newpool/usr/src 19K 5.41G 19K /mnt/usr/src newpool/var 139K 5.41G 19K /mnt/var newpool/var/audit 19K 5.41G 19K /mnt/var/audit newpool/var/crash 19K 5.41G 19K /mnt/var/crash newpool/var/log 44K 5.41G 44K /mnt/var/log newpool/var/mail 19K 5.41G 19K /mnt/var/mail newpool/var/tmp 19K 5.41G 19K /mnt/var/tmp zroot 524M 26.4G 96K /zroot zroot/ROOT 522M 26.4G 96K none zroot/ROOT/default 522M 26.4G 522M / zroot/tmp 74.5K 26.4G 74.5K /tmp zroot/usr 384K 26.4G 96K /usr zroot/usr/home 96K 26.4G 96K /usr/home zroot/usr/ports 96K 26.4G 96K /usr/ports zroot/usr/src 96K 26.4G 96K /usr/src zroot/var 580K 26.4G 96K /var zroot/var/audit 96K 26.4G 96K /var/audit zroot/var/crash 96K 26.4G 96K /var/crash zroot/var/log 103K 26.4G 103K /var/log zroot/var/mail 96K 26.4G 96K /var/mail zroot/var/tmp 92.5K 26.4G 92.5K /var/tmp I am assuming I have to amend the zfs parameters for the mount points but I can’t seem to figure out what’s wrong. I tried things like: zfs set mountpoint=/usr newpool/usr zfs set mountpoint=/tmp newpool/tmp zfs set mountpoint=/var newpool/var Unfortunately this did not solve the issue. Any ideas? Many thanks. Best regards Sebastian > Am 02.05.2016 um 21:43 schrieb Sebastian Wolfgarten <sebastian@wolfgarten.com>: > > Hi Matthias, > dear list, > > I have build a new VM to test this further without affecting my live machine. When doing all these steps (including the amendment of loader.conf on the new pool), my system will boots up with the old pool. Any ideas why? > > Here is what I did: > > 1) Create required partitions on temporary hard disk ada2 > gpart create -s GPT ada2 > gpart add -t freebsd-boot -s 128 ada2 > gpart add -t freebsd-swap -s 4G -l newswap ada2 > gpart add -t freebsd-zfs -l newdisk ada2 > gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada2 > > 2) Create new pool (newpool) > > zpool create -o cachefile=/tmp/zpool.cache newpool gpt/newdisk > > 3) Create snapshot of existing zroot pool and copy it over to new pool > zfs snapshot -r zroot@movedata > zfs send -vR zroot@movedata | zfs receive -vFd newpool > zfs destroy -r zroot@movedata > > 4) Make the new pool bootable > > zpool set bootfs=newpool/ROOT/default newpool > > 5) Mount new pool and prepare for reboot > > cp /tmp/zpool.cache /tmp/newpool.cache > zpool export newpool > zpool import -c /tmp/newpool.cache -R /mnt newpool > cp /tmp/newpool.cache /mnt/boot/zfs/zpool.cache > in /mnt/boot/loader.conf the value of kern.geom.label.gptid.enable=„0“ changed to „2" > zfs set mountpoint=/ newpool/ROOT > reboot > > After the reboot, the machine is still running of the old zfs striped mirror but I can mount the newpool without any problems: > > root@vm:~ # cat /boot/loader.conf > kern.geom.label.gptid.enable="0" > zfs_load="YES" > root@vm:~ # zpool import -c /tmp/newpool.cache -R /mnt newpool > root@vm:~ # cd /mnt > root@vm:/mnt # ls -la > total 50 > drwxr-xr-x 19 root wheel 26 May 2 23:33 . > drwxr-xr-x 18 root wheel 25 May 2 23:37 .. > -rw-r--r-- 2 root wheel 966 Mar 25 04:52 .cshrc > -rw-r--r-- 2 root wheel 254 Mar 25 04:52 .profile > -rw------- 1 root wheel 1024 May 2 01:45 .rnd > -r--r--r-- 1 root wheel 6197 Mar 25 04:52 COPYRIGHT > drwxr-xr-x 2 root wheel 47 Mar 25 04:51 bin > -rw-r--r-- 1 root wheel 9 May 2 23:27 bla > drwxr-xr-x 8 root wheel 47 May 2 01:44 boot > drwxr-xr-x 2 root wheel 2 May 2 01:32 dev > -rw------- 1 root wheel 4096 May 2 23:21 entropy > drwxr-xr-x 23 root wheel 107 May 2 01:46 etc > drwxr-xr-x 3 root wheel 52 Mar 25 04:52 lib > drwxr-xr-x 3 root wheel 4 Mar 25 04:51 libexec > drwxr-xr-x 2 root wheel 2 Mar 25 04:51 media > drwxr-xr-x 2 root wheel 2 Mar 25 04:51 mnt > drwxr-xr-x 2 root wheel 2 May 2 23:33 newpool > dr-xr-xr-x 2 root wheel 2 Mar 25 04:51 proc > drwxr-xr-x 2 root wheel 147 Mar 25 04:52 rescue > drwxr-xr-x 2 root wheel 7 May 2 23:27 root > drwxr-xr-x 2 root wheel 133 Mar 25 04:52 sbin > lrwxr-xr-x 1 root wheel 11 Mar 25 04:52 sys -> usr/src/sys > drwxrwxrwt 6 root wheel 7 May 2 23:33 tmp > drwxr-xr-x 16 root wheel 16 Mar 25 04:52 usr > drwxr-xr-x 24 root wheel 24 May 2 23:21 var > drwxr-xr-x 2 root wheel 2 May 2 01:32 zroot > root@vm:/mnt # cd boot > root@vm:/mnt/boot # cat loader.conf > kern.geom.label.gptid.enable="2" > zfs_load=„YES" > > My question is: How do I make my system permanently boot off the newpool such that I can destroy the existing zroot one? > > Many thanks for your help, it is really appreciated. > > Best regards > Sebastian > >> Am 29.04.2016 um 10:25 schrieb Matthias Fechner <idefix@fechner.net>: >> >> Am 28.04.2016 um 23:14 schrieb Sebastian Wolfgarten: >>> 5) Mount new pool and prepare for reboot >>> >>> cp /tmp/zpool.cache /tmp/newpool.cache >>> zpool export newpool >>> zpool import -c /tmp/newpool.cache -R /mnt newpool >>> cp /tmp/newpool.cache /mnt/boot/zfs/zpool.cache >>> zfs set mountpoint=/ newpool/ROOT >>> reboot >> >> I think you forgot to adapt vfs.zfs.mountfrom= in /boot/loader.conf on the new pool? >> >> >> >> Gruß >> Matthias >> >> -- >> >> "Programming today is a race between software engineers striving to >> build bigger and better idiot-proof programs, and the universe trying to >> produce bigger and better idiots. So far, the universe is winning." -- >> Rich Cook > > _______________________________________________ > freebsd-questions@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6E1B2BCF-3B5C-4D18-9152-FE68711B2B43>
