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
свами была радиа “БЗДыщ”. ждзице нас и мы вирньомса