JeOS на Btrfs

Материал из ALT Linux Wiki
Версия от 04:01, 17 января 2020; Wd (обсуждение | вклад) (Новая страница: «=== Показание к операции === Постановка опыта с пересадкой altlinux с ext2/3/4 на btrfs для выяснения…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Показание к операции

Постановка опыта с пересадкой 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 /boot

а вот тут ↑ уже не помню что конкретно я сказал, повторю - уточню, но что-то в этом духе

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

чиним это:

 ln -s syslinux /boot/extlinux

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

тамже в append добавляем fastboot, иначе обломаемся об altbug #37842: APPEND fastboot ro root=/dev/sda1

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

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

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

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

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

 btrfs subvolume delete /ext2_saved

That's all Folks!