linux не видит корневой раздел (открывает не тот lvm)
Доброго времени суток!
Тема такая: решил перенести всю систему на LVM под LUKS. На диске как раз есть свободное место.
Собственно создал раздел, дальше luksFormat, потом на нем создал физ.том lvm, volume group с именем tux и логические тома. Туда-же решил поместить и /boot. С помощью rsync скатал всю текущую систему(ну кроме всяких dev и proc) на смонтированные тома. Чрут в «новую» систему, поправил fstab, получив UUID новых разделов через blkid, поправил mkinitcpio.conf, добавив хук encrypt перед lvm, и файл /crypto_keyfile.bin(в общем все по мануалу из archwiki для grub, где /boot на lvm и luks), поправил /etc/default/grub, добавил cryptdevice по UUID, поменял root на «новый» раздел. Потом установил, используя отличный от «manjaro» id для загрузчика, чтоб не перезаписал. В общем все вроде как по уму.
linux — «старая» группа томов. На ней изначально была система
tux — «новая» группа томов под LUKS. На нее все перекинул
fdisk
lvdisplay /dev/sda5 (новые разделы)
старые выглядят аналогичным образом, кроме boot. Он был вынесен на раздел.
initcpio hooks: base udev autodetect modconf block encrypt lvm2 resume filesystems keyboard fsck
initcpio files: /crypto_keyfile.bin
но тут нареканий нет, все работает
grub
UEFI загружает файл, grub из него просит пароль для моего LUKS, загружается. Все нормально. Потом идет загрузка ядра. По пути вылетает ошибка
Затем выбрасывает в rootfs. Посмотрел /dev/mapper
т.е., как я понял, ядро упорно не хочет открывать lvm на зашифрованном разделе, хотя, судя по всему, с него успешно загружается(находится-то /boot на новом разделе tux-lvboot). Вместо него оно открывает старый раздел, и начинает искать корень. Конечно, не находит.
Собственно вопрос: куда указать ядру, на каком разделе нужный ему lvm?
Тема такая: решил перенести всю систему на LVM под LUKS. На диске как раз есть свободное место.
Собственно создал раздел, дальше luksFormat, потом на нем создал физ.том lvm, volume group с именем tux и логические тома. Туда-же решил поместить и /boot. С помощью rsync скатал всю текущую систему(ну кроме всяких dev и proc) на смонтированные тома. Чрут в «новую» систему, поправил fstab, получив UUID новых разделов через blkid, поправил mkinitcpio.conf, добавив хук encrypt перед lvm, и файл /crypto_keyfile.bin(в общем все по мануалу из archwiki для grub, где /boot на lvm и luks), поправил /etc/default/grub, добавил cryptdevice по UUID, поменял root на «новый» раздел. Потом установил, используя отличный от «manjaro» id для загрузчика, чтоб не перезаписал. В общем все вроде как по уму.
Вот так выглядит система.
tux — «новая» группа томов под LUKS. На нее все перекинул
fdisk
Диск /dev/sda: 465,8 GiB, 500107862016 байт, 976773168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: C1FFDE5E-F440-EA4C-A528-F38B8E969E3E
Устр-во начало Конец Секторы Размер Тип
/dev/sda1 2048 206847 204800 100M EFI
/dev/sda2 206848 1230847 1024000 500M Файловая система Linux
/dev/sda3 1230848 420661247 419430400 200G Файловая система Linux
/dev/sda4 420661248 462604287 41943040 20G Linux своп
/dev/sda5 462604288 892887054 430282767 205,2G Файловая система Linux
lvdisplay /dev/sda5 (новые разделы)
--- Logical volume ---
LV Path /dev/tux/lvroot
LV Name lvroot
VG Name tux
LV UUID W1NLd3-hh8t-lwB5-uFIt-MUqB-Rw25-JPkNl2
LV Write Access read/write
LV Creation host, time man-PIC, 2018-06-07 16:04:30 +0300
LV Status available
# open 1
LV Size 18,00 GiB
Current LE 4608
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:6
--- Logical volume ---
LV Path /dev/tux/lvopt
LV Name lvopt
VG Name tux
LV UUID Hcl5p8-1bvi-IGXf-ueRV-ZbHT-2RC7-rTcGmH
LV Write Access read/write
LV Creation host, time man-PIC, 2018-06-07 16:04:39 +0300
LV Status available
# open 0
LV Size 16,00 GiB
Current LE 4096
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:7
--- Logical volume ---
LV Path /dev/tux/lvtmp
LV Name lvtmp
VG Name tux
LV UUID P0vuIy-0bkF-1S7s-ODfx-fBqH-eDTE-mzw9rC
LV Write Access read/write
LV Creation host, time man-PIC, 2018-06-07 16:04:47 +0300
LV Status available
# open 0
LV Size 10,00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:8
--- Logical volume ---
LV Path /dev/tux/lvhome
LV Name lvhome
VG Name tux
LV UUID PCuSMc-2LbA-6JfU-oRyG-fU99-RXBL-ythaR4
LV Write Access read/write
LV Creation host, time man-PIC, 2018-06-07 16:05:45 +0300
LV Status available
# open 0
LV Size 158,00 GiB
Current LE 40448
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:9
--- Logical volume ---
LV Path /dev/tux/lvusrlocal
LV Name lvusrlocal
VG Name tux
LV UUID uMEUMu-yxqE-NYAs-dgPL-k71G-0zPE-ymojKs
LV Write Access read/write
LV Creation host, time man-PIC, 2018-06-07 16:06:21 +0300
LV Status available
# open 0
LV Size 1,50 GiB
Current LE 384
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:10
--- Logical volume ---
LV Path /dev/tux/lvboot
LV Name lvboot
VG Name tux
LV UUID NABBfv-iC8E-cQGa-JvQl-21Ws-P9qX-gYpxew
LV Write Access read/write
LV Creation host, time man-PIC, 2018-06-07 16:06:37 +0300
LV Status available
# open 0
LV Size 500,00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:11
старые выглядят аналогичным образом, кроме boot. Он был вынесен на раздел.
initcpio hooks: base udev autodetect modconf block encrypt lvm2 resume filesystems keyboard fsck
initcpio files: /crypto_keyfile.bin
но тут нареканий нет, все работает
grub
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="root=UUID=d91d413d-1f73-4c31-86b2-6a220d0e949b" (пробовал по uuid -- тоже не получилось)
GRUB_CMDLINE_LINUX="cryptdevice=UUID=8ccdf20e-934d-4f71-9085-9004cf6519c1:drivecrypt "
GRUB_ENABLE_CRYPTODISK=y
# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos lvm"
# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT=5
#GRUB_HIDDEN_TIMEOUT_QUIET=true
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/local/share/backgrounds/IET_0282_01.png"
#GRUB_THEME="/usr/local/share/grub/themes/manjaro/theme.txt"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
UEFI загружает файл, grub из него просит пароль для моего LUKS, загружается. Все нормально. Потом идет загрузка ядра. По пути вылетает ошибка
filter writes are not supported
, но все загружается. Вот тут-то и начинается самое интересное =) ядро почему-то не видит «новый раздел»:waiting 10 sec for device /dev/mapper/tux-lvroot(новый корень)...
Затем выбрасывает в rootfs. Посмотрел /dev/mapper
ls /dev/mapper
...
linux-lvroot
linux...(и т.д. это "старые разделы, на которых стояла система")
т.е., как я понял, ядро упорно не хочет открывать lvm на зашифрованном разделе, хотя, судя по всему, с него успешно загружается(находится-то /boot на новом разделе tux-lvboot). Вместо него оно открывает старый раздел, и начинает искать корень. Конечно, не находит.
Собственно вопрос: куда указать ядру, на каком разделе нужный ему lvm?