LINUX.ORG.RU

Grub не даёт без UUID

 , ,


0

2

На диске /dev/sda1 - бут-раздел. На /dev/sda2 - криптованный luks. Под ним лежит btrfs.
В /etc/default/grub выставлено GRUB_DISABLE_LINUX_UUID=true. Так почему же этот поганец так и продолжает в сгенерированном меню пользоваться исключительно UUID? Или может можно label люкс партишену задать? (Не слышал о таком). Мне нужно в общем, чтобы он монтировал НЕ по uuid всегда, диск постоянно /dev/sda. Как заставить его?

★★★★★
Ответ на: комментарий от ne-vlezay

Ядро стоковое, так было и до его обновления и после и с zen ядром. Настройка эта в граб конфиге была выставлена давно, и генерировал новый initramfs и граба конфиг генерировал - ничего не помогает. Вижу в итоге нечто вроде:

menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
	savedefault
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_msdos 
		insmod ext2
		set root='hd0,msdos1'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
		else
		  search --no-floppy --fs-uuid --set=root xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
		fi
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=/dev/mapper/cryptroot rw cryptdevice=/dev/sda2:cryptroot quiet
		echo	'Loading initial ramdisk ...'
		initrd	 /initramfs-linux.img
	}
Т.е., если там верный UUID диска - он грузится, а если нет - то и нет. А мне нужно, чтобы он тупо монтировал /dev/sda2 всегда как /dev/mapper/cryptroot, спрашивал пароль и грузил cryptroot, в независимости от UUID диска.

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

Конфиг пересоздал? update-grub2 и всё такое?

И не раз пересоздавал.

fehhner ★★★★★
() автор топика

The value of GRUB_DISABLE_LINUX_UUID is used by update-grub and the scripts in the directory /etc/grub.d/. If you still get UUIDs in your grub.conf it looks like one of the scripts is not checking against the GRUB_DISABLE_LINUX_UUID setting. Best thing to do there is trying to figure out what the filesystem type is and check that against the names of the scripts in /etc/grub.d to see if there is a pattern.

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

покажи /etc/fstab

# 
# /etc/fstab: static file system information
#
# <file system>	<dir>	<type>	<options>	<dump>	<pass>
# /dev/mapper/cryptroot
LABEL=root	/         	btrfs     	rw,relatime,space_cache,subvolid=5,subvol=/	0 0
fehhner ★★★★★
() автор топика
Ответ на: комментарий от man_of_motley

The value of GRUB_DISABLE_LINUX_UUID is used by update-grub and the scripts in the directory /etc/grub.d/. If you still get UUIDs in your grub.conf it looks like one of the scripts is not checking against the GRUB_DISABLE_LINUX_UUID setting. Best thing to do there is trying to figure out what the filesystem type is and check that against the names of the scripts in /etc/grub.d to see if there is a pattern.

Честно говоря, я посмотрел cat /etc/grub.d/10_linux и проверки вроде все делаются вконце первой четверти скрипта. Единственная проблема - я не слишком силён в баше и не уверен, стоит ли и как именно там можно что-то поправить.

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

Ну, вообще говоря у тебя тут нет UUID, так что с точки зрения grub тут всё честно :)

А откуда такое странное желание - не иметь UUID в /etc/fstab? Может, у твоей задачи есть другое решение?

Так-то вообще надо читать маны и скрипты в /etc/grub.d/, конкретно 10_linux и всё что он подключает.

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

Ну, вообще говоря у тебя тут нет UUID, так что с точки зрения grub тут всё честно :)

Ну нет, есть, в половине мест просто граб его убрал, а в половине - оставил.

А откуда такое странное желание - не иметь UUID в /etc/fstab? Может, у твоей задачи есть другое решение?

Ну вот такое вот желаение. Я переставил винчестер в другой ноут с таким же конфигом, хотел включить, UUID меняется. Пришлось, чтобы заработал, чрутиться с загрузочного диска и делать mkinitcpio - p linux; grub-mkconfig -o /boot/grub/grub.cfg и только тогда смог включиться. Я хочу, чтобы было по-человечески, без таких танцев, мне возможно ещё пару раз придётся туда-сюда переткнуть, может быть необходимость. А Label не видел чтобы Luks партишену задавали как-то...

Так-то вообще надо читать маны и скрипты в /etc/grub.d/, конкретно 10_linux и всё что он подключает.

Арчевики на этот счёт очень скудно к сожалению, но я смог найти нужное место в означенном скрипте, пролистав немного вниз. Но я повторюсь - в баше не силён (только самое простое), и сам поправить не смогу к сожалению.

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

Я переставил винчестер в другой ноут с таким же конфигом, хотел включить, UUID меняется

UUID как раз потому и используется в grub.conf, что обычно не меняется. Если он поменялся - то это не от перестановки винчестера, это кто-то его через tune2fs поменял. Надо понять, кто и почему его поменял. Хотя я LUKS не использовал, но в любом случае, если раздел имеет какое-то подобие UUID, то оно меняется только при пересоздании раздела или через tune2fs. В общем, пока кажется, что решается не та проблема.

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

Пришлось, чтобы заработал, чрутиться с загрузочного диска и делать

Твой ноут не умеет UEFI?

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

Кстати да, не обратил внимания. Kiborg прав - если ты переставляешь винт в другой ноут и грузишься с него то никакие UUID не должны меняться.

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

UUID как раз потому и используется в grub.conf, что обычно не меняется. Если он поменялся - то это не от перестановки винчестера, это кто-то его через tune2fs поменял. Надо понять, кто и почему его поменял. Хотя я LUKS не использовал, но в любом случае, если раздел имеет какое-то подобие UUID, то оно меняется только при пересоздании раздела или через tune2fs. В общем, пока кажется, что решается не та проблема.

Не хочу вдаваться в подробности, но я знаю, почему меняется. Суть в том, что на 1 компе - всегда 1 UUID, а на втором - другой, а всё остальное остаётся как есть. Хорошо, а какой вариант попроще сделать 2 пункта в грабе с разными UUID и не ковырть ручками каждый раз всё это после каждого обновления?

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

Кстати, может слышал про аналог tune2fs, чтобы если том LUKS - я мог его UUID поменять (под ним btrfs)? В мейл-листе Федора предлагают юзать так tune2fs -l /dev/mapper/luks, но он с бтрфс не дружит. Ещё поищу.

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

Не хочу вдаваться в подробности, но я знаю, почему меняется

Вот это как раз было бы интересно услышать. Я впервые вижу, чтобы UUID менялся при установке диска в другой комп. Где тогда хранится этот UUID, если не на том самом диске? А если он на диске - почему меняется? Я бы сам посмотрел, но нигде не пользуюсь LUKS.

Сделать можно, например, дописав вручную свою секцию в /etc/grub.d/40_custom или 41_custom (я не помню точно имя файла, куда дописывать, но можно посмотреть содержимое, там в комментариях всё написано). Секция, добавленная в этот файл, будет появляться в grub.conf последней.

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

на 1 компе - всегда 1 UUID, а на втором - другой

А blkid на этот раздел, на котором разные UUID, тоже всегда разные значения выдает? Что покажет ls -l /dev/disk/by-uuid/ на обеих системах?

UPD как сменить UUID для LUKS: http://unix.stackexchange.com/questions/257652/change-encrypted-partition-uuid

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

А blkid на этот раздел, на котором разные UUID, тоже всегда разные значения выдает? Что покажет ls -l /dev/disk/by-uuid/ на обеих системах?

На обеих системах - постоянные UUID, но на каждой - свой. Это связано с использованием специфического адаптера, он и даёт этот другой UUID.
Спасибо за инфу, завтра попробую сделать, отпишу о результате.

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