| 1 | zfsbsd# uname -rs |
|---|
| 2 | FreeBSD 7.2-STABLE |
|---|
| 3 | |
|---|
| 4 | Lets take a look at our zfs-root setup. |
|---|
| 5 | |
|---|
| 6 | zfsbsd# zpool status |
|---|
| 7 | pool: rpool |
|---|
| 8 | state: ONLINE |
|---|
| 9 | scrub: none requested |
|---|
| 10 | config: |
|---|
| 11 | |
|---|
| 12 | NAME STATE READ WRITE CKSUM |
|---|
| 13 | rpool ONLINE 0 0 0 |
|---|
| 14 | ad0p3 ONLINE 0 0 0 |
|---|
| 15 | |
|---|
| 16 | errors: No known data errors |
|---|
| 17 | |
|---|
| 18 | zfsbsd# zfs list -t all |
|---|
| 19 | NAME USED AVAIL REFER MOUNTPOINT |
|---|
| 20 | rpool/ROOT 252M 6.89G 20K /rpool/ROOT |
|---|
| 21 | rpool/ROOT/oldBE 252M 6.89G 252M /rpool/ROOT/oldBE |
|---|
| 22 | rpool/ROOT/oldBE@oldBE 287K - 252M - |
|---|
| 23 | rpool/tmp 29K 6.89G 29K /tmp |
|---|
| 24 | rpool/usr-local 1.66M 6.89G 1.66M /usr/local |
|---|
| 25 | rpool/var 81.9M 6.89G 81.9M /var |
|---|
| 26 | |
|---|
| 27 | Our current boot-environment is called "oldBE" and is mounted on /. |
|---|
| 28 | |
|---|
| 29 | zfsbsd# manageBE list |
|---|
| 30 | Poolname: rpool |
|---|
| 31 | BE Active Active Mountpoint Space |
|---|
| 32 | Name Now Reboot - Used |
|---|
| 33 | ---- ------ ------ ---------- ----- |
|---|
| 34 | oldBE yes yes /rpool/ROOT/oldBE 252M |
|---|
| 35 | |
|---|
| 36 | zfsbsd# mount |
|---|
| 37 | rpool/ROOT/oldBE on / (zfs, local) |
|---|
| 38 | devfs on /dev (devfs, local) |
|---|
| 39 | rpool on /rpool (zfs, local) |
|---|
| 40 | rpool/ROOT on /rpool/ROOT (zfs, local) |
|---|
| 41 | rpool/tmp on /tmp (zfs, local) |
|---|
| 42 | rpool/usr-local on /usr/local (zfs, local) |
|---|
| 43 | rpool/var on /var (zfs, local) |
|---|
| 44 | |
|---|
| 45 | Lets create a new boot-environment "newBE" using the old boot-environment "oldBE" as source, thus including all the files. |
|---|
| 46 | |
|---|
| 47 | zfsbsd# manageBE create |
|---|
| 48 | Usage: manageBE create -n <newBE> -s <sourceBE> -p <pool> |
|---|
| 49 | |
|---|
| 50 | zfsbsd# manageBE create -n newBE -s oldBE -p rpool |
|---|
| 51 | Install new kernel with option 'DESTDIR=/rpool/ROOT/newBE/' and run 'manageBE activate -n newBE -p rpool' |
|---|
| 52 | |
|---|
| 53 | The new boot-environment was created, it is not yet activated but mounted on "/rpool/ROOT/newBE/" |
|---|
| 54 | |
|---|
| 55 | zfsbsd# manageBE list |
|---|
| 56 | Poolname: rpool |
|---|
| 57 | BE Active Active Mountpoint Space |
|---|
| 58 | Name Now Reboot - Used |
|---|
| 59 | ---- ------ ------ ---------- ----- |
|---|
| 60 | newBE no no /rpool/ROOT/newBE 0 |
|---|
| 61 | oldBE yes yes /rpool/ROOT/oldBE 252M |
|---|
| 62 | |
|---|
| 63 | zfsbsd# mount |
|---|
| 64 | rpool/ROOT/oldBE on / (zfs, local) |
|---|
| 65 | devfs on /dev (devfs, local) |
|---|
| 66 | rpool on /rpool (zfs, local) |
|---|
| 67 | rpool/ROOT on /rpool/ROOT (zfs, local) |
|---|
| 68 | rpool/ROOT/newBE on /rpool/ROOT/newBE (zfs, local) |
|---|
| 69 | rpool/tmp on /tmp (zfs, local) |
|---|
| 70 | rpool/usr-local on /usr/local (zfs, local) |
|---|
| 71 | rpool/var on /var (zfs, local) |
|---|
| 72 | |
|---|
| 73 | Now you could do a "freebsd-update -b /rpool/ROOT/newBE" or "make installkernel DESTDIR=/rpool/ROOT/newBE/". |
|---|
| 74 | |
|---|
| 75 | After that, we activate the new boot-environment too boot from it. |
|---|
| 76 | |
|---|
| 77 | zfsbsd# manageBE activate -n newBE -p rpool |
|---|
| 78 | |
|---|
| 79 | We can see that it is activated on the next reboot. |
|---|
| 80 | |
|---|
| 81 | zfsbsd# manageBE list |
|---|
| 82 | Poolname: rpool |
|---|
| 83 | BE Active Active Mountpoint Space |
|---|
| 84 | Name Now Reboot - Used |
|---|
| 85 | ---- ------ ------ ---------- ----- |
|---|
| 86 | newBE no yes /rpool/ROOT/newBE 252M |
|---|
| 87 | oldBE yes no /rpool/ROOT/oldBE 252M |
|---|
| 88 | |
|---|
| 89 | Lets fire it up! |
|---|
| 90 | |
|---|
| 91 | zfsbsd# reboot |
|---|
| 92 | |
|---|
| 93 | After the reboot. |
|---|
| 94 | |
|---|
| 95 | zfsbsd# uname -rs |
|---|
| 96 | FreeBSD 7.2-STABLE |
|---|
| 97 | |
|---|
| 98 | Now the new boot-environment is enable and in use, the old is mounted but not in use anymore. |
|---|
| 99 | |
|---|
| 100 | zfsbsd# manageBE list |
|---|
| 101 | Poolname: rpool |
|---|
| 102 | BE Active Active Mountpoint Space |
|---|
| 103 | Name Now Reboot - Used |
|---|
| 104 | ---- ------ ------ ---------- ----- |
|---|
| 105 | newBE yes yes /rpool/ROOT/newBE 253M |
|---|
| 106 | oldBE no no /rpool/ROOT/oldBE 383K |
|---|
| 107 | |
|---|
| 108 | zfsbsd# mount |
|---|
| 109 | rpool/ROOT/newBE on / (zfs, local) |
|---|
| 110 | rpool/ROOT on /rpool/ROOT (zfs, local) |
|---|
| 111 | rpool/ROOT/oldBE on /rpool/ROOT/oldBE (zfs, local) |
|---|
| 112 | rpool/tmp on /tmp (zfs, local) |
|---|
| 113 | rpool/usr-local on /usr/local (zfs, local) |
|---|
| 114 | rpool/var on /var (zfs, local) |
|---|
| 115 | |
|---|
| 116 | zfsbsd# zfs list -t all |
|---|
| 117 | NAME USED AVAIL REFER MOUNTPOINT |
|---|
| 118 | rpool/ROOT 253M 6.89G 21K /rpool/ROOT |
|---|
| 119 | rpool/ROOT/newBE 253M 6.89G 252M /rpool/ROOT/newBE |
|---|
| 120 | rpool/ROOT/newBE@oldBE 391K - 252M - |
|---|
| 121 | rpool/ROOT/newBE@newBE 185K - 252M - |
|---|
| 122 | rpool/ROOT/oldBE 383K 6.89G 252M /rpool/ROOT/oldBE |
|---|
| 123 | rpool/tmp 29K 6.89G 29K /tmp |
|---|
| 124 | rpool/usr-local 1.66M 6.89G 1.66M /usr/local |
|---|
| 125 | rpool/var 81.9M 6.89G 81.9M /var |
|---|
| 126 | |
|---|
| 127 | Lets get rid of the old boot-environment if we don't need it anymore. |
|---|
| 128 | |
|---|
| 129 | zfsbsd# manageBE delete |
|---|
| 130 | Usage: manageBE delete -n <BE> -p <pool> -o [yes|no] |
|---|
| 131 | |
|---|
| 132 | The -o option deletes the snapshot the old boot-environment is depending on too. |
|---|
| 133 | |
|---|
| 134 | zfsbsd# manageBE delete -n oldBE -p rpool -o yes |
|---|
| 135 | |
|---|
| 136 | Yep its gone. |
|---|
| 137 | |
|---|
| 138 | zfsbsd# zfs list -t all |
|---|
| 139 | NAME USED AVAIL REFER MOUNTPOINT |
|---|
| 140 | rpool/ROOT 253M 6.89G 19K /rpool/ROOT |
|---|
| 141 | rpool/ROOT/newBE 253M 6.89G 252M /rpool/ROOT/newBE |
|---|
| 142 | rpool/ROOT/newBE@oldBE 706K - 252M - |
|---|
| 143 | rpool/tmp 29K 6.89G 29K /tmp |
|---|
| 144 | rpool/usr-local 1.66M 6.89G 1.66M /usr/local |
|---|
| 145 | rpool/var 81.9M 6.89G 81.9M /var |
|---|
| 146 | |
|---|
| 147 | zfsbsd# manageBE list |
|---|
| 148 | Poolname: rpool |
|---|
| 149 | BE Active Active Mountpoint Space |
|---|
| 150 | Name Now Reboot - Used |
|---|
| 151 | ---- ------ ------ ---------- ----- |
|---|
| 152 | newBE yes yes /rpool/ROOT/newBE 253M |
|---|
| 153 | |
|---|
| 154 | zfsbsd# mount |
|---|
| 155 | rpool/ROOT/newBE on / (zfs, local) |
|---|
| 156 | devfs on /dev (devfs, local) |
|---|
| 157 | rpool on /rpool (zfs, local) |
|---|
| 158 | rpool/ROOT on /rpool/ROOT (zfs, local) |
|---|
| 159 | rpool/tmp on /tmp (zfs, local) |
|---|
| 160 | rpool/usr-local on /usr/local (zfs, local) |
|---|
| 161 | rpool/var on /var (zfs, local) |
|---|