LINUX.ORG.RU

Grub (Luks+LVM+Systemd) нет гибернации

 , , ,


0

1

Нужно, чтобы работала гибернация нормально с systemd. Сюда добавил:

cat /etc/mkinitcpio.conf
...
HOOKS="systemd autodetect modconf block sd-encrypt sd-lvm2 btrfs filesystems keyboard fsck"
...
С грабом игрался с rd.luks.uuid и rd.lvm.lv, как советуют здесь, устал - не выходит ничего. Вернул к состоянию, как было, чтобы комп включался:
cat /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:lvm root=/dev/mapper/lvmvg-rootvol rootflags=subvol=root resume=/dev/mapper/lvmvg-swapwol"
....
cat /etc/fstab
# UUID=834788b9-9417-426f-8a7d-895e8bf6ca72 LABEL=btrfs
/dev/mapper/lvmvg-rootvol	/         	btrfs     	rw,relatime,compress=lzo,space_cache,subvolid=257,subvol=/root,subvol=root	0 0

# UUID=834788b9-9417-426f-8a7d-895e8bf6ca72 LABEL=btrfs
/dev/mapper/lvmvg-rootvol	/home     	btrfs     	rw,relatime,compress=lzo,space_cache,subvolid=258,subvol=/home,subvol=home	0 0

# UUID=11b9108c-66a0-453d-bba2-b6fc81200416
/dev/sda2           	/boot     	ext4      	rw,relatime,data=ordered	0 2

# UUID=BD5A-3821
/dev/sda1           	/boot/efi 	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro	0 2

# UUID=479715d3-aa32-40cc-b0c2-3842a88acede
/dev/mapper/lvmvg-swapvol	none      	swap      	defaults  	0 0
В гибернацию не уходит (вернее не просыпается после неё). Подскажите правильную строчку целиком плиз GRUB_CMDLINE_LINUX и нужно ли что-то править в fstab.

★★★★★

Не понимаю, для чего люди используют груб в 2016 году? Или железо 6-10 летней давности до сих пор используется в данном случае, что простительно?

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

Не понимаю, для чего люди используют груб в 2016 году? Или железо 6-10 летней давности до сих пор используется в данном случае, что простительно?

Железо норм, хз - граб считается удобным, распространённым и надёжным.

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

у тебя же есть UEFI, следовательно загрузчик не нужен, если это не дуал/трипл-бут конфигурация конечно.

В офф манах арча советуют оставлять раздел под уефи, раздел под бут с грабом и остальное раздел. Кинься линком на тему, интересно. Кстати, старая live-флешка перестала работать после создания раздела UEFI (даже если переключаю в биос в режим Legacy - не помогает).

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

у меня гента, никаких отдельных /boot нет, схема диска такая:

  • EFI-раздел fat32, 200мб с флагами boot,esp
  • /-раздел ext4

всё.

Читай с своей вики про EFIstub ядро и загрузку через uefi, отдельные /boot разделы должны уйти в прошлое, как груб и прочий треш.

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

загрузчик не нужен, если это не дуал/трипл-бут

EFI может и дуал/трипл/овер9к-бут. Вон, у меня до недавнего времени было гента в ефи + вынь7 в легаси, и я даже не переключал режимы в настройках матплаты, просто ребутался, и выбирал нужный пункт или пинал bootnext. С UEFI загрузчик — это просто лишняя сущность, если, конечно, вместо EFI не стоит какой-то кастрат, который не умеет меню выбора бутнума и эти самые бутнумы.

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

ну мне для триплбута (лин, вин, мак) лично удобнее использовать clover, который лежит в efi-разделе, чем какие-то настройки в осях.

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

Как раз оси трогать не надо вообще. Для легаси ты просто выбираешь диск, на котором лежит выньда, efi просто добавляешь в список efibootmgr'ом каким-нибудь, и забываешь.

r3lgar ★★★★★
()

Да строчка вроде правильная. А что в логах после неудачного восстановления (dmesg, journalctl -b)?

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

А что в логах

Если нужны - могу сделать, просто сразу при загрузке вижу ERROR: resume hibernation device /dev/mapper/lvmvg-swapvol not found, скорее всего этого достаточно...

Да строчка вроде правильная.

Она правильная - да, но без системд если использовать. Я гуглил уже и дал линк на топик, ссылка на который даже в вкики арча была. Я гуглил эту ошибку и понял, что нужно поправить что-то (предлагают использовать системд), чтобы на новом ядре работало. В mkinitcpio.conf, я заменил на systemd sd-encrypt sd-lvm2, соответствующие разделы. А строчку загрузки тоже на использование системд надо поправить (rd.lvm.lv правильно применить), в том топике у парня вышло, а я не могу допонять и ломаю граб только, что-то делаю не так.

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

EFI может и дуал/трипл/овер9к-бут

А как мне правильно тогда удалить граб? Почитал тут, узнал про efibootmgr, будет ли он дружить с люксом и лвм и моим разбиением диска?

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

Да строчка вроде правильная.

Вообще, возможно стоит удалить граб. Пытаюсь понять, как правильно. Просто отлаживать всё очень, очень долго. Приходится после каждого неверного действия делать ребут на флешку для восстановления, потом всё ручками монтировать, чрутиться, потом править, сохранять, снова ребут для проверки и опять не работает, столько времени проходит...

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

А как мне правильно тогда удалить граб?

Читай документацию по грабу. Я до этого юзал lilo, так что ничего не знаю про.

Почитал тут

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

будет ли он дружить с люксом и лвм

Не знаю, не пробовал. Теоретически, если прописать путь к initramfs в ядро или в опции бутнума через efibootmgr, должно взлететь.

и моим разбиением диска

Раздел /boot тебе вообще никуда не упёрся с EFI, лишняя вложенность, практической ценности никакой. Да и какой смысл городить путь в виде /boot/efi/EFI?

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

ERROR: resume hibernation device /dev/mapper/lvmvg-swapvol not found

Эта строчка означает, что у тебя внутри initcpio не systemd, что не согласуется с приведённым тобой mkinitcpio.conf.

На «советы» про загрузчик не обращай внимания — он тут совсем ни при чём.

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

На «советы» про загрузчик не обращай внимания — он тут совсем ни при чём.

Тут ты прав, он те же параметры будет брать, просто удобнее всё реализовано. Я переставлю, когда граб заработает, он всёравно позволяет и граб пускать тот же, не знал про эту вкусность, не вникал.
Разобрался с некоторыми делами, взял пива и теперь готов разложить всё по полочкам.
Просто вопрос немного осложняется использованием LVM, который лежит поl LUKS, на томе root которого BTRFS + ещё там том SWAP VOLUME.
Т.е., для меня не так просто разобраться в вопросе в данном случае (Systemd), т.к. новые функции почти не задокументированны и вики не обновлено, а гугл нормально не даёт.

Поясню более детально (оговоримся сразу, что я могу использовать путь к device без всяких LABEL и UUID, использование UUID вопрос только усложнит - вдруг я размер изменю томов и он сменится, можно и LABEL конечно, диск основной фиксирован /dev/sda), в том конфиге(cryptdevice=/dev/sda3:lvmvg root=/dev/mapper/lvmvg-rootvol rootflags=subvol=root resume=/dev/mapper/lvmvg-swapwol), я действую (без Systemd) так:

Параметры ядра:
[inurl=https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration#Boot_loader]cryptdevice=device:dmname[/inurl], dmname должно быть device-mapper name, полученное после расшифровки. Я использую соответственно Volume Group(VG) своего LVM (можно проверить по pvs, в моём случае это - lvmvg.

Далее, когда диск уже расшифрован, я передаю в параметр root=, корневое устройство расшифрованной системы: /dev/mapper/lvmvg-rootvol (это VG-LVNAME (LV NAME можно проверить, введя lvdisplay VG, в моём случае это lvmvg-rootvol)

[inurl=https://wiki.archlinux.org/index.php/Systemd-boot#btrfs_subvolume_root_instal...]Т.к. я использую BTRFS, нужно[/inurl] передать дополнительно rootflags=subvol=<root subvolume>, что я тоже сделал.

Гибернация в swap - должен быть использован параметр resume=том_ядра. Это resume=/dev/mapper/lvmvg-swapwol в моём случае.

Да, ты прав

Да строчка вроде правильная.

Правда, это до Нового ядра.

Эта строчка означает, что у тебя внутри initcpio не systemd, что не согласуется с приведённым тобой mkinitcpio.conf

Нет, похоже, не значит. Поясню, mkinitcpio.conf я поправил. Но по линку с форума арча, парень выставляет вместо cryptodevice=, resume=, root=, rd.luks.uuid=, rd.lvm.lv=, resume=, root= и потом только всё работает. Но у меня

  • ещё бл#$@! BTRFS на томе LVM LUKS
  • Disk descriptor = device, ну могу на LABEL поменять



Пробовал играть по-разному с параметрами интуитивно, только ломал граб. Вики устарело. Need help.

P.S.
было cryptodevice=PARTUUID=28230c39-5262-4778-b12a-b5eda11831d0:lvm resume=/dev/mapper/vol0-lv_swap root=/dev/mapper/vol0-lv_root rw , это LUKS/LVM/resume W/O BTRFS, disk-by-uuid.
стало:rd.luks.uuid=176a3eb9-90c3-49c7-a0b5-697860d21068 rd.lvm.lv=lvm/root rd.lvm.lv=lvm/swap resume=UUID=b89c478e-a1ff-4332-a11b-ceebc3b08de8 root=UUID=e180cd3e-d4c4-4e0a-9426-0f7e460a7303 rw.
Мне нужна новая (верная) строка.

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

Я не умею в boot-from-LVM, мне это не имеет смысла рассказывать. Всего лишь отметил, что systemd сообщает об ошибке восстановления из гибернации по-другому (совершенно точно по-другому, я писал этот модуль). Следовательно, у тебя внутри initramfs работает не systemd, а старая арчовская скриптота.

Поэтому я просто советую разобраться со своей конфигурацией и внятно описать, что происходит (и да, с логами).

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

я писал этот модуль

Ого! Не ожидал, надо же, круть (Oo)

Поэтому я просто советую разобраться со своей конфигурацией и внятно описать, что происходит (и да, с логами).

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

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

Гибернация с шифрованием? Да вы батенька, совсем не понимаете, что предоставляете доступ к образу вашей оперативной памяти бисплатно и без СМС.

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

использование UUID вопрос только усложнит - вдруг я размер изменю томов и он сменится

UUID сменяется только при форматировании, но никак ни при изменении размеров.

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

Гибернация с шифрованием? Да вы батенька, совсем не понимаете, что предоставляете доступ к образу вашей оперативной памяти бисплатно и без СМС.

Да впринципе, реально мне эта гибернация не нужна, по факту я её не использую. Максимум - в сон комп входит комп при лид клозе, если отошёл ненадолго, да и то, может такое поведение его сменю - бывает приложение какое-то должно выполняться. Просто удивляюсь, что не работает гибернация.
По такому случаю хотел ещё узнать - достаточно ли использовать swap на luks, как обычный том? Просто видел где-то рекомендацию, что-то связано с /dev/urandom

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

Не у всех есть нормальный UEFI

не нужен нормальный, нужен любой.

стал де-факто стандартом уже

Нет. Не стал ни де-факто, ни де-юре. Как же может стать стандартом то, от чего массово отказываются по причине отсутствия необходимости в нём?

Можешь не отвечать.

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

Grub имеет больше возможностей, более гибкий, умеет напрямую грузится из LVM и LUKS, можно редактировать параметры ядра, передаваемые при загрузке, а так же грузиться с разных ядер на выбор. Типичный юзкейс - single-mode при невозможности стартовать X-ы, при невозможности загрузиться с нового ядра после апдейта можно сделать фоллбэк на старое ядро.

Когда UEFI будет поддерживать эти и другие фичи - тогда и можно выбрасывать GRUB. Такие дела.

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

Шифровать swap надо и так и так, даже если гибернацию не используешь. Ибо туда утекают ненужные приложениям данные. Но это не значит, что они не содержат информации.

Гибернация при использовании LUKS опасна тем, что если у тебя терморектальным способом выпытают ключ, они могут получить такой подарок как полный образ оперативной памяти. А если ты используешь, например, gpg-agent, значит и нехилый шанс того, что они получат твой приватный ключ прямо из памяти. И никакая блокировка страниц памяти от выгрузки не спасёт.

Некоторые дистрибутивы специально делают нерабочую гибернацию при шифровании. Тупо её запрещают.

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

В общем, я отказался по итогу от гибернации, как ненужного мне, хорошо поразмыслив. И правда сломали кстати. Всё остальное норм вроде работает. Увидел в вики кстати, что при использовании граб, можно содержимое бут раздела так же хранить на шифрованном диске, только пароль нужно вводить будет 2 раза. А без граба кстати ефи лодер работает норм и умеет кстати в тот же граб идти. Вот думаю, насколько рационально зашифровать.

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