User Tools

Site Tools


huy:zfsonlinux

This is an old revision of the document!


дарагия чытацели, наше радиа снова рада привецтваваць на нашам канале “нет покоя ебанутым”

сиводня мы рассмотрим такую пездатую весчь, как устанофка линугза на зфс. Да, в корень, да, и бут тоже. И похуй на лицензию. И похуй на сложнасци. Мы жы льюбим ихъ. А ани льубят нас.

И установга будзет у нас ни прастая, а залатайа - мы пиринисьом ужэ сущиствующий центзозь на зыфысы.

Приригвизиды:

-centos 7 softraid x86_64. mbr

-валшэбныйэ пакеты, заботлива собранные вот этими ручкаме:

zfs/kernel-uek-4.1.12-112.14.15.el7uek.x86_64.rpm
zfs/kernel-uek-firmware-4.1.12-112.14.15.el7uek.x86_64.rpm
zfs/kmod-spl-0.7.6-1.el7.x86_64.rpm
zfs/kmod-zfs-0.7.6-1.el7.x86_64.rpm
zfs/libnvpair1-0.7.6-1.el7.x86_64.rpm
zfs/libuutil1-0.7.6-1.el7.x86_64.rpm
zfs/libzfs2-0.7.6-1.el7.x86_64.rpm
zfs/libzpool2-0.7.6-1.el7.x86_64.rpm
zfs/linux-firmware-20171128-57.git17e62881.0.2.el7.noarch.rpm
zfs/spl-0.7.6-1.el7.x86_64.rpm
zfs/zfs-0.7.6-1.el7.x86_64.rpm
zfs/zfs-dracut-0.7.6-1.el7.x86_64.rpm

дракут - такайа сволатч, любит преврациць обрас в тыкву, вот и в даннам слутчайэ - узбагаиваем иво:

dracut --no-early-microcode --force /boot/initramfs-4.1.12-112.14.15.el7uek.x86_64.img 4.1.12-112.14.15.el7uek.x86_64

тездируем новайэ йадро

kexec -l /boot/vmlinuz-4.1.12-112.14.15.el7uek.x86_64 --initrd /boot/initramfs-4.1.12-112.14.15.el7uek.x86_64.img --reuse-cmdline
kexec -e

деноминируем рейд пополам:

  mdadm --fail /dev/md0 /dev/sdb1
  mdadm --remove /dev/md0 /dev/sdb1
  mdadm --zero-superblock /dev/sdb1
  mdadm --fail /dev/md1 /dev/sdb2
  mdadm --remove /dev/md1 /dev/sdb2
  mdadm --zero-superblock /dev/sdb2
  mdadm --fail /dev/md2 /dev/sdb3
  mdadm --remove /dev/md2 /dev/sdb3
  mdadm --zero-superblock /dev/sdb3

обнуляем таблицу разделов и создаем гэпэтэ (йа пробавал эмбээр - нивзлитела):

  sgdisk --zap-all /dev/sdb
  sgdisk -a1 -n3:34:2047  -t3:EF02 /dev/sdb
  sgdisk     -n1:0:+512M      -t1:BF01 /dev/sdb
  sgdisk     -n2:0:0      -t2:BF01 /dev/sdb
  rm -rf /mnt
  mkdir /mnt
 

саздайом зыпуул и рутэфэс збутам:

  zpool create -o ashift=12 -O mountpoint=/ -R /mnt -f zroot /dev/sdb2
  zfs create -o mountpoint=/ zroot/ROOT
  zpool create -o ashift=12 -o version=28    -O mountpoint=/boot -R /mnt -f zroot /dev/sdb1

синкаем в новайе места:

  rsync -avx --exclude='mnt'  / /mnt/
  rsync -avx --exclude='mnt'  /boot/ /mnt/boot/
  mount --rbind /sys /mnt/sys
  mount --rbind /proc /mnt/proc
  mount --rbind /dev /mnt/dev

гатовим груб и фстаб фчруце:

  chroot /mnt/ sed -i -re 's@^GRUB_CMDLINE_LINUX(.+)@GRUB_CMDLINE_LINUX="biosdevname=0 crashkernel=auto nomodeset rd.auto=1 consoleblank=0  boot=zfs root=ZFS=zroot/ROOT zfsforce=1 elevator=deadline"@' /etc/default/grub
  chroot /mnt dracut --no-early-microcode --force /boot/initramfs-4.1.12-112.14.15.el7uek.x86_64.img
  chroot /mnt yum -y remove kernel-3\*
  chroot /mnt grub2-install /dev/sdb
  chroot /mnt grub2-mkconfig -o /boot/grub2/grub.cfg
  cat > /mnt/etc/fstab << _EOF
proc /proc proc defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
_EOF

атманцируем фтарой вениг

  umount -l /mnt/proc/
  umount -l  /mnt/sys/
  umount -l  /mnt/dev
  umount -l  /mnt/boot
  umount -l  /mnt
  zpool  export zroot
  zpool  export zboot

и вроди фсьо харашо, но мы ниуверины, скакова венига биоз будет грузицца послирибута. Паэтаму нада исчо и на первам венике сдзелаць тожысамайе:

  sed -i -re 's@^GRUB_CMDLINE_LINUX(.+)@GRUB_CMDLINE_LINUX="biosdevname=0 crashkernel=auto nomodeset rd.auto=1 consoleblank=0  boot=zfs root=ZFS=zroot/ROOT zfsforce=1 elevator=deadline"@' /etc/default/grub
  dracut --no-early-microcode --force /boot/initramfs-4.1.12-112.14.15.el7uek.x86_64.img
  yum -y remove kernel-3\*
  grub2-mkconfig -o /boot/grub2/grub.cfg

паскольку квма у наз нед, то ниплоха бы была правериць циарицичэския шансы на то, што фсе палучицца посли рибута:

  
  qemu-system-x86_64 -m 8192 -boot c -hda /dev/sdb --enable-kvm -vnc :0
  qemu-system-x86_64 -m 8192 -boot c -hda /dev/sda -hdb /dev/sdb  --enable-kvm -vnc :0
  reboot

Йэсли фсё палутчилась, то умнажаем наноль астафшыйся мдрейд и добавляем веник в миррар к zroot

  mdadm --stop  /dev/md2
  mdadm --stop  /dev/md1
  mdadm --stop  /dev/md0
  mdadm --zero-superblock /dev/sda3
  mdadm --zero-superblock /dev/sda2
  mdadm --zero-superblock /dev/sda1
  sgdisk --zap-all /dev/sda
  sgdisk -a1 -n3:34:2047  -t3:EF02 /dev/sda
  sgdisk     -n1:0:+512M      -t1:BF01 /dev/sda
  sgdisk     -n2:0:0      -t2:BF01 /dev/sda
  zpool attach zboot /dev/sdb1 /dev/sda1
  zpool attach zroot /dev/sdb2 /dev/sda2
  grub2-install /dev/sda

кантрольный рибут

  reboot

если фсё пездата, дзелайем снапшот, штобы паказаць патомкам и каллегам

  zfs snapshot -r zroot@migrated

свами была радиа “БЗДыщ”. ждзице нас и мы вирньомса

huy/zfsonlinux.1520242864.txt.gz · Last modified: 2018/03/05 09:41 by slayer