LINUX.ORG.RU

Установка Grub2 на BTRFS и проблема со снапшотами

 , ,


0

2

Корень установлен с субволюм btrfs, /boot не бенесен в отдельный раздел, хомяк находится на отдельном разделе. Итак, понадобилось переустановить граб и поиск в интернете дал такое решение:

  • mount -o subvol=@courent /dev/sdb6 /mnt
  • mount -o bind /dev /mnt/dev
  • mount -o bind /sys /mnt/sys
  • mount -o bind /proc /mnt/proc
  • swapon /dev/sdb7
  • chroot /mnt /bin/bash
  • grub2-install --no-floppy --root-directory=/ /dev/sdb

И это вроде работает, система грузится, update-grub2 все правильно обновляет. Вот только при переходе в снапшот, grub не загружается, ссылаясь на отсутствие куска себя по пути /@courent/boot/и.т.д. Новый снапшот-то имеет другое название и путь до бута естественно меняется.

Вот собственно, как правильно переустановить граб, для того что-бы btrfs subvolume set-default номер_снапшота /, нормально переключал меня в снапшот?

P.S. Менять FS и/или выносить boot в отдельный раздел - не предлогать!

Ответ на: комментарий от Obito

Попробуй просто grub-install

Пробовал: находясь в снапшоте, находясь в нолевом томе, прямо из запущенной системы.

Еще варианты есть?

Неужели никто на ЛОРе не пользуется BtrFS?

Kapshibergen
() автор топика
Ответ на: комментарий от Kapshibergen

Есть. Открывай конфиг граба, дописывай subvolume, проверяй, запоминай результат. Затем начинай править свой процесс до достижения этого результата, потому что у всех все работает и с некорневых снапшотов грузится.

BTW, что значат буквы «courent»?

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

Открывай конфиг граба, дописывай subvolume, проверяй, запоминай результат. Затем начинай править свой процесс до достижения этого результата,

Если можно, то же самое, но по русски. Ты про rootflags=subvol=@courent?

Я не нашел в grub.cfg упоминаний о папке /boot/grub2/i386-pc

А именно ее граб ищет исключительно по пути @courent/boot/grub2/i386-pc.

Переустановил граб на @, теперь ему подавай @/boot/grub2/i386-pc

Если сделать btrfs subvolume set-default 297 /, то граб пишет мол - не могу найти @/boot/grub2/i386-pc/какой-то-файл/

потому что у всех все работает и с некорневых снапшотов грузится.

Перестало работать после переустановки граба.

BTW, что значат буквы «courent»?

Имя подтома @courent

P.S. Вто grub.cfg:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'ROSA Desktop Fresh R9' --class rosa --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-26627f12-1dcf-4c14-8aab-e54a6840b07e' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod btrfs
	set root='hd1,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6  26627f12-1dcf-4c14-8aab-e54a6840b07e
	else
	  search --no-floppy --fs-uuid --set=root 26627f12-1dcf-4c14-8aab-e54a6840b07e
	fi
	echo	'Loading Linux 4.12.10-nrj-desktop-1rosa-x86_64 ...'
	linux	/@/boot/vmlinuz-4.12.10-nrj-desktop-1rosa-x86_64 root=UUID=26627f12-1dcf-4c14-8aab-e54a6840b07e ro rootflags=subvol=@  splash=silent logo.nologo quiet zswap.enabled=1 zswap.max_pool_percent=70 resume=UUID=9d97008e-0bc8-41bd-953c-c349a03b81a2
	echo	'Loading initial ramdisk ...'
	initrd	/@/boot/initrd-4.12.10-nrj-desktop-1rosa-x86_64.img
}
submenu 'Advanced options for ROSA Desktop Fresh R9' $menuentry_id_option 'gnulinux-advanced-26627f12-1dcf-4c14-8aab-e54a6840b07e' {
	menuentry 'ROSA Desktop Fresh R9 - Linux 4.12.10-nrj-desktop-1rosa-x86_64' --class rosa --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.12.10-nrj-desktop-1rosa-x86_64-advanced-26627f12-1dcf-4c14-8aab-e54a6840b07e' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_msdos
		insmod btrfs
		set root='hd1,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6  26627f12-1dcf-4c14-8aab-e54a6840b07e
		else
		  search --no-floppy --fs-uuid --set=root 26627f12-1dcf-4c14-8aab-e54a6840b07e
		fi
		echo	'Loading Linux 4.12.10-nrj-desktop-1rosa-x86_64 ...'
		linux	/@/boot/vmlinuz-4.12.10-nrj-desktop-1rosa-x86_64 root=UUID=26627f12-1dcf-4c14-8aab-e54a6840b07e ro rootflags=subvol=@  splash=silent logo.nologo quiet zswap.enabled=1 zswap.max_pool_percent=70 resume=UUID=9d97008e-0bc8-41bd-953c-c349a03b81a2
		echo	'Loading initial ramdisk ...'
		initrd	/@/boot/initrd-4.12.10-nrj-desktop-1rosa-x86_64.img
	}
	menuentry 'ROSA Desktop Fresh R9 - Linux 4.11.12-nrj-desktop-1rosa-x86_64' --class rosa --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.11.12-nrj-desktop-1rosa-x86_64-advanced-26627f12-1dcf-4c14-8aab-e54a6840b07e' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_msdos
		insmod btrfs
		set root='hd1,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos6 --hint-efi=hd1,msdos6 --hint-baremetal=ahci1,msdos6  26627f12-1dcf-4c14-8aab-e54a6840b07e
		else
		  search --no-floppy --fs-uuid --set=root 26627f12-1dcf-4c14-8aab-e54a6840b07e
		fi
		echo	'Loading Linux 4.11.12-nrj-desktop-1rosa-x86_64 ...'
		linux	/@/boot/vmlinuz-4.11.12-nrj-desktop-1rosa-x86_64 root=UUID=26627f12-1dcf-4c14-8aab-e54a6840b07e ro rootflags=subvol=@  splash=silent logo.nologo quiet zswap.enabled=1 zswap.max_pool_percent=70 resume=UUID=9d97008e-0bc8-41bd-953c-c349a03b81a2
		echo	'Loading initial ramdisk ...'
		initrd	/@/boot/initrd-4.11.12-nrj-desktop-1rosa-x86_64.img
	}
}

### END /etc/grub.d/10_linux ### 

Kapshibergen
() автор топика
Ответ на: комментарий от Kapshibergen

Ты про rootflags=subvol=@courent

Да.

/boot/grub2/i386-pc

не /boot/grub/i386-pc?

Переустановил граб на @, теперь ему подавай @/boot/grub2/i386-pc

А ее у тебя нет что ли? А можно какой-нибудь grub-install -v

Перестало работать после переустановки граба.

Предлагаю с учетом отсутствия директории с модулями не называть его установленным.

BTW, что значат буквы «courent»?

Имя подтома @courent

Не, мне интересно на каком это французском и как переводится на русский или английский?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ты про rootflags=subvol=@courent

Да.

Ну, как ты видишь, оно прописано.

не /boot/grub/i386-pc?

Нет, у меня grub2 и путь соответственно /boot/grub2/i386-pc.

А ее у тебя нет что ли? А можно какой-нибудь grub-install -v

Если перехожу в снапшот, то и путь меняется на /имяснапшота/grub2/i386-pc А Граб продолжает искать в /@/grub2/i386-pc которой уже нет...

# grub2-install -v
grub2-install (GRUB) 2.00

Предлагаю с учетом отсутствия директории с модулями не называть его установленным.

Так она есть, меняется путь в связи с монтированием подтома с другим названием.

От-тго и все проблемы.

Не, мне интересно на каком это французском и как переводится на русский или английский?

BtrFS-у фиолетово, правильно оно написано или нет.

Kapshibergen
() автор топика
Ответ на: комментарий от Kapshibergen

Блин, ну естественно есть какой-то фактор, который отличает тебя от всех остальных, но будет замалчиваться до победного конца...

Ты какой-то пришелец из параллельной реальности с совершенно отличным от меня grub2.

$ sudo grub2-install
sudo: grub2-install: command not found
$ sudo grub-install -V
grub-install (GRUB) 2.02~beta3-5
$ sudo grub-install --help
...
  -d, --directory=DIR        use images and modules under DIR             
                             [default=/usr/lib/grub/<platform>]
...
  -v, --verbose              print verbose messages.
...
  -V, --version              print program version
...

Естественно УМВР.

Можешь повторить с GRUB'ом моложе 5 лет?

t184256 ★★★★★
()
Ответ на: комментарий от Kapshibergen

Неужели никто на ЛОРе не пользуется BtrFS?

Одновременно с grub из 2012 — да, ты один такой должен быть. Понавставляют себе палок в колеса, а потом «неужели никто не пользуется велосипедом?».

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Зачем ругаешься начальника?

Какой в дистрибутиве по умолчанию идет, такой и использую.

Там кстати функции бекпортируют - https://abf.io/import/grub2/tree/rosa2014.1

Все он должен поддерживать.(да и до переустановки эта же версия работала ведь)

Kapshibergen
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.