JeOS на Btrfs: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 46: Строка 46:
   dd if=/boot/extlinux/mbr.bin of=/dev/sda1
   dd if=/boot/extlinux/mbr.bin of=/dev/sda1
''на самом деле я это ↑ накатил еще из syslinux, но суть не меняется
''на самом деле я это ↑ накатил еще из syslinux, но суть не меняется
   extlinux -i /boot
   extlinux -i /
''а вот тут ↑ уже не помню что конкретно я сказал, повторю - уточню, но что-то в этом духе


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

Версия от 21:19, 17 января 2020

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

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