JeOS на Btrfs

Материал из ALT Linux Wiki
Перейти к: навигация, поиск

Показание к операции[править]

Постановка опыта с пересадкой altlinux с ext2/3/4 на btrfs для выяснения вопроса о приживаемости btrfs в altlinux

Используемые инструменты[править]

  • VirtualBox в качестве операционной
  • свежий Starterkit JeOS
  • свежий SystemResqueCD (или любой другой LiveCD, способный смонитировать btrfs и чрутнуться туда, к сожалению на текщий момент установочный образ jeos не умеет btrfs)

Подготовка[править]

просто ставим jeos в vbox

  • весь жесткий диск в один раздел монтируем в / (условие задачи)
  • apt-get update

по окончанию должна получиться живая система с рабочим apt

Процедура[править]

необходимо[править]

  • конвертнуть fs
  • поставить и настроить загрузчик
  • пересобрать initrd

поехали[править]

конвертить будем прямо из этойже системы

  apt-get install btrfs-progs

грузимся с cd (я все еще грузился с родной iso), спрыгиваем в tty2, понимаем, что sda1 уже захвачен devmapper-ом, монтируем его readonly, чтобы можно было конвертить, чрутимся внутрь, конвертим:

 mount -o ro /dev/mapper/sda1 /mnt
 mount --bind /dev /mnt/dev
 mount --bind /proc /mnt/proc
 mount --bind /sys /mnt/sys
 chroot /mnt bash
 btrfs-convert /dev/sda1
 ^D

тут понимаем, что отмонтировать уже не удастся, маппер вообще это все потерял. ресетим виртуалку, и понимаем, что смонтировать уже не выйдет

все это можно было бы сделать сразу из sysresqcd даже без монтирования и чрута, но хотелось использовать родное

грузимся с sysresqcd, тут devmapper не мешается, монтируем просто /dev/sda1 уже в rw, чрутимся, доделываем сетку и ставим extlinux

 echo nameserver 8.8.8.8 >/etc/resolv.conf
 apt-get install extlinux

на самом деле можно было поставить extlinux сразу, но кто же знал...

ну и еще про лодырей:

  • попытка использовать grub обломалась об не понимание файловой системы при загрузке
  • изначально я ставил syslinux, и к нему до кучи syslinux-extlinux - трата времени

строим extlinux:

 dd if=/boot/extlinux/mbr.bin of=/dev/sda1

на самом деле я это ↑ накатил еще из syslinux, но суть не меняется

 extlinux -i /

попытавшись ребутнуться можно насладиться тем, что конфигу (которую любезно уже нарисовали) оно не видит

чиним это:

 ln -s syslinux /boot/extlinux

в самой конфиге extlinux.conf меняем @ROOTDEV@ на /dev/sda1 (возможно что-то это должно сменить самостоятельно?)

тамже в append добавляем fastboot, иначе обломаемся об altbug #37842:

 APPEND fastboot ro root=/dev/sda1

т.к. UUID после конвертации сменился - также обновляем fstab

пересобираем initrd:

т.к. мы уже на btrfs, то никаких колдунств с модулями не нужно

 make-initrd -k {версия ядра}

тут `uname -r` не прокатит, ибо загружено другое ядро, так что руками

ну гдето тут можно еще и подчистить старую ненужность:

 btrfs subvolume delete /ext2_saved

That's all Folks!

А еще можно просто использовать https://www.altlinux.org/Altlive - он устанавливается на btrfs сразу с помощью https://packages.altlinux.org/en/sisyphus/srpms/live-install