Кентавр/Btrfs/Вторая Попытка: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «=== зачем btrfs === Жили замечательно на md-raid, снапшотов <skiped> захотелось... Да и комресии для вс...»)
 
Строка 17: Строка 17:
btrfs-progs можно взять тот что есть (он везде бородатого года) но более правильно повесить багу на  
btrfs-progs можно взять тот что есть (он везде бородатого года) но более правильно повесить багу на  
его обновление до 0.19-26 из исходников oracle.
его обновление до 0.19-26 из исходников oracle.
Бинарные сборки и исходники как-есть (Для p6 и Sisyphus (2012-08-23)): [ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/dek/uel2/ тут].


=== Выделим место для перезда ===
=== Выделим место для перезда ===

Версия от 05:39, 27 августа 2012

зачем btrfs

 Жили замечательно на md-raid, снапшотов <skiped> захотелось... Да и комресии для всяких
 /usr и /home/src.... (выразано цензурой).

Было

 /md0 - /boot
 /md2 - /

Нужные пакеты

Для p6: kernel-image-el-uek-2.6.39.100.5.1-alt1

Для Sisyphus можно собрать kernel-image-el-uek-2.6.39.100.5.1-alt1, а можно не заморачиваться и пробовать ветки 3.4 и даже 3.5

btrfs-progs можно взять тот что есть (он везде бородатого года) но более правильно повесить багу на его обновление до 0.19-26 из исходников oracle.

Бинарные сборки и исходники как-есть (Для p6 и Sisyphus (2012-08-23)): тут.

Выделим место для перезда

 # mdadm /dev/md2 --fail /dev/sdb3
 # mdadm /dev/md2 --remove /dev/sdb3
 
 С помощью fdisk меняем тип раздела 3 на sdb с 0xFD на 0x83.

mkfs

 ] # mkfs -t btrfs -L pool /dev/sdb3
 ] # mkdir /mnt/btrfs /mnt/btrfs-active
 ] # blkid

добавить строки в fstab (UUID берем из blkid):

 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /mnt/btrfs              btrfs  defaults,noatime,discard 0 0
 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /mnt/btrfs-active       btrfs defaults,discard,noatime,subvol=_active     0 0
 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /mnt/btrfs-active/usr   btrfs defaults,compress=lzo,discard,noatime,subvol=_active/usr 0 0
 ] # mount /mnt/btrfs
 ] # cd /mnt/btrfs 
 ] # mkdir _snapshot
 ] # btrfs subvolume create _active
 ] # btrfs subvolume create _active/usr
 ] # btrfs subvolume create _active/var
 ] # btrfs subvolume create _active/home
 ] # mount -a -t btrfs

можно переходить к переносу данных с помощью rsync, tar, cpio....

rsync

 ] # rsync -avhHPS --exclude={boot,dev,sys,proc,mnt,tmp,media,var/resolv,var/lib/mysql,var/spool,var/lib} / .
 ] # rsync -avhPS --exclude={tmp} /var/ /mnt/btrfs-active/var/
 ] # mkdir var/tmp dev sys proc mnt tmp media boot
 ] # /etc/init.d/udevd umount
 ] # umount /dev/pts
 ] # rsync -PavH /dev/ /mnt/btrfs-active/
 ] # /etc/init.d/udevd mount ; mount /dev/pts

chroot

 ] # cd /mnt/btrfs-avtive 
 btrfs-active]# mount -o bind /boot boot
 btrfs-active]# mount -o bind /proc proc
 btrfs-active]# mount -o bind /sys sys
 btrfs-active]# mount -o bind /dev dev
 btrfs-active]# cdroot . /bin/bash
 
 Скопировать ядро и initrd для того чтобы можно было взлететь на старой системе
 /] # cd /boot
 boot]# cp vmlinuz-2.6.39.100.5.1-el-uek-alt1 vmlinuz-2.6.39.100.5.1-el-uek-alt1-old
 boot]# cp config-2.6.39.100.5.1-el-uek-alt1 config-2.6.39.100.5.1-el-uek-alt1-old
 
 # /etc ; rm -f mtab ; egrep '(btrfs|boot)' /proc/mounts > mtab
 
 Правим fstab:
 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /       btrfs defaults,discard,noatime,subvol=_active     0 0
 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /usr    btrfs defaults,compress=lzo,discard,noatime,subvol=_active/usr 0 0
 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /btrfs  btrfs  defaults,noatime,discard 0 0
 При этом не забываем комментировать лишние строки... 
 
 initrd:
 
 # make-initrd
 
 /etc/sysconfig/grub2:
 в переменной GRUB_CMDLINE_LINUX_DEFAULT добавить "fastboot rootflags=subvol=_active" 
 
 # grub-mkconfig -o /boot/grub/grub.cfg
 # vim /boot/grub/grub.cfg
 
 Ищем "linux   /vmlinuz-2.6.39.100.5.1-el-uek-alt1-old root=" и правим root=/dev/sdb3 на старый root.
 Удаляем "fastboot rootflags=subvol=_active". Это нужно только для того чтобы иметь возможность загрузить
 старую ОС если были допущены ошибки. 
 

Покидаем chroot

 # exit
 # reboot

after reboot

 пришибить остатки рейда и сказать:
 # btrfs device add /dev/sda3 /
 # btrfs filesystem balance /
 
 Для тех у кого btrfs-progs от oracle:
 
 # btrfs scrub start /
 По завершению scrub можно:
 # btrfs filesystem defragment /