meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:fs:zfs:move_to_zfs [2021/02/14 17:33] niziaklinux:fs:zfs:move_to_zfs [2021/05/14 16:06] (current) niziak
Line 6: Line 6:
   * [[https://www.tomica.net/blog/2019/02/moving-ubuntu-to-root-on-zfs/]]   * [[https://www.tomica.net/blog/2019/02/moving-ubuntu-to-root-on-zfs/]]
   * [[https://blog.heckel.io/2016/12/31/move-existing-linux-install-zfs-root/]]   * [[https://blog.heckel.io/2016/12/31/move-existing-linux-install-zfs-root/]]
 +  * [[https://wiki.debian.org/ZFS|ZFS - Debian Wiki]]
  
 ===== Prepare system ===== ===== Prepare system =====
Line 27: Line 28:
 <code bash> <code bash>
 zpool create \ zpool create \
-    -o ashift=12 -d \+    -o ashift=13 -d \
     -o feature@async_destroy=enabled \     -o feature@async_destroy=enabled \
     -o feature@bookmarks=enabled \     -o feature@bookmarks=enabled \
     -o feature@embedded_data=enabled \     -o feature@embedded_data=enabled \
-    -o feature@empty_bpobj=enabled \+    -o feature@empty_bpobj=enabled \rapidly and thoroughly than you'd think.
     -o feature@enabled_txg=enabled \     -o feature@enabled_txg=enabled \
     -o feature@extensible_dataset=enabled \     -o feature@extensible_dataset=enabled \
Line 46: Line 47:
 </code> </code>
  
-==== create root pool ====+==== Create root pool ====
  
 <code bash> <code bash>
 zpool create \ zpool create \
-    -o ashift=12 \+    -o ashift=13 \
     -O acltype=posixacl -O canmount=off -O compression=lz4 \     -O acltype=posixacl -O canmount=off -O compression=lz4 \
     -O dnodesize=auto -O normalization=formD -O relatime=on \     -O dnodesize=auto -O normalization=formD -O relatime=on \
Line 57: Line 58:
 </code>     </code>    
  
-=== prepare filesystem ===+===== prepare filesystem =====
  
 <code bash> <code bash>
Line 102: Line 103:
 </code> </code>
  
-=== Move filesystem ===+==== Move filesystem ====
  
 <code bash> <code bash>
Line 114: Line 115:
 </code> </code>
  
-=== update filesystem ===+==== update filesystem ====
  
 <code bash> <code bash>
Line 138: Line 139:
 </code> </code>
  
-=== Enable importing bpool ===+==== Enable importing bpool ====
  
 <file /etc/systemd/system/zfs-import-bpool.service> <file /etc/systemd/system/zfs-import-bpool.service>
Line 173: Line 174:
  
 <code bash>update-initramfs -c -k </code> <code bash>update-initramfs -c -k </code>
 +
 +==== Update GRUB ====
  
 === EFI boot === === EFI boot ===
Line 219: Line 222:
 <code bash> <code bash>
 sed -Ei "s|/rpool/?|/|" /etc/zfs/zfs-list.cache/* sed -Ei "s|/rpool/?|/|" /etc/zfs/zfs-list.cache/*
- 
- 
 </code> </code>
  
  
- +Exit chroot<code>exit</code>
-Exit chroot +
-<code> +
-exit +
-</code>+
  
 Unmount zfs Unmount zfs
Line 236: Line 233:
 </code> </code>
  
 +**DON'T FORGET TO EXPORT BEFORE REBOOT!**
  
 <code> <code>
 zpool export -a zpool export -a
 +
 reboot reboot
 </code> </code>
Line 244: Line 243:
 Reboot. Choose recovery boot to verify. Reboot. Choose recovery boot to verify.
  
-==== issue: No pool imported ====+===== Add 2nd disk for mirror ===== 
 + 
 +<code bash> 
 +DISK=/dev/disk/by-id/scsi-SATA_disk2 
 +sgdisk --zap-all $DISK 
 +sgdisk -a8 -n1:24K:+1000K -t1:EF02 $DISK  # grub bios 
 +sgdisk     -n2:1M:+256M   -t2:EF00 $DISK  # EFI 
 +sgdisk     -n3:0:+512M    -t3:BF01 $DISK  # /boot 
 +sgdisk     -n4:0:       -t4:BF00 $DISK  # rpool 
 +</code> 
 + 
 +Attach boot partitiona to ''bpool'': 
 +<code bash> 
 +zpool list -v 
 +zpool attach bpool ata-WDC_WD1003FZEX-00MK2A0_WD-WCC3F5HSP1N1-part3 $DISK-part3 
 +zpool list -v 
 +</code> 
 + 
 +Attach pool partition to ''rpool'': 
 +<code bash> 
 +zpool list -v 
 +zpool attach rpool ata-WDC_WD1003FZEX-00MK2A0_WD-WCC3F5HSP1N1-part4 $DISK-part4 
 +zpool list -v 
 +</code> 
 + 
 +Check mirror build progresS: 
 +<code> 
 +zpool status 
 + 
 +  pool: bpool 
 + state: ONLINE 
 +  scan: resilvered 263M in 0 days 00:00:06 with 0 errors on Sun Feb 14 18:26:12 2021 
 + 
 +  pool: rpool 
 + state: ONLINE 
 +status: One or more devices is currently being resilvered.  The pool will 
 + continue to function, possibly in a degraded state. 
 +action: Wait for the resilver to complete. 
 +  scan: resilver in progress since Sun Feb 14 18:27:09 2021 
 + 68,9G scanned at 860M/s, 504K issued at 6,15K/s, 326G total 
 + 0B resilvered, 0,00% done, no estimated completion time 
 +</code> 
 + 
 +==== Install grub on 2nd disk ==== 
 + 
 + 
 +=== legacy  === 
 + 
 +<code bash>dpkg-reconfigure grub-pc</code> 
 +Hit enter until you get to the device selection screen. Select (using the space bar) all of the disks (not partitions) in your pool. 
 + 
 +or 
 + 
 +<code bash>grub-install $DISK</code> 
 + 
 +=== For UEFI booting === 
 + 
 +<code bash>umount /boot/efi</code> 
 + 
 +<code bash> 
 +dd if=/dev/disk/by-id/scsi-SATA_disk1-part2 \ 
 +   of=/dev/disk/by-id/scsi-SATA_disk2-part2 
 + 
 +efibootmgr -c -g -d /dev/disk/by-id/scsi-SATA_disk2 \ 
 +    -p 2 -L "debian-2" -l '\EFI\debian\grubx64.efi' 
 + 
 +mount /boot/efi 
 +</code> 
 + 
 +==== add ZIL and L2ARC  ==== 
 + 
 +<code bash> 
 +zpool add rpool log c2980761-ed99-4af3-8519-f03ed43fbefe 
 +</code> 
 + 
 +<code bash> 
 +zpool add rpool cache 3b42df2e-2923-464c-92d6-8d629252727d 
 +</code> 
 + 
 +===== issue: No pool imported =====
  
 <code> <code>
Line 270: Line 348:
 </code> </code>
  
-==== issue ? ====+===== issue ? =====