Проблемы с размонтированием LVM в системе LUKS, когда отсутствует исходный live-USB
У меня довольно специфическая проблема с половиной моей системы в Ubuntu. TL;DR - это то, что у меня Ubuntu 14.04, использующая LVM на настройке LUKS. /boot находится в незашифрованном разделе (/sda3), а swap и root - в LVM внутри раздела LUKS (/sda4). Я сделал настройку с live-USB, и система в основном работает. Однако поведение системы зависит от того, присутствует ли оригинальный live-USB или нет.
Если USB присутствует, система загрузится примерно через 3 секунды и будет аккуратно выключена. Если USB отсутствует, зашифрованная система будет подключена, но процесс входа займет ~60 секунд. При завершении работы система заявляет, что root занят и не завершит работу корректно.
Я не уверен, в чем именно заключается проблема, или как бы я решил ее исправить. Я подозреваю, что проблема является результатом того, что я сделал что-то не так, когда я переключился с live-USB на новую установку во время установки. Любая помощь будет принята с благодарностью.
Я включаю как можно больше информации и прошу прощения, если остальная часть этого поста излишне длинна.
Выход во время выключения:
Если live-USB присутствует, выключение происходит нормально:
wait-for-state stop/waiting
* Stopping rsync daemon rsync [OK]
* speech-dispatcher disabled: edit /etc/default/speech-dispatcher
* Asking all remaining processes to terminate... [OK]
* Killing all remaining processes... [OK]
ModemManager[971]: <info> Caught signal, shutting down...
ModemManager[971]: <info> ModemManager is shut down
nm-dispatcher.action: Caught signal 15, shutting down...
* Deactivating swap... [OK]
* Unmounting local filesystems... [OK]
* sda4_crypt (busy)...
* Stopping early crypto disks... [fail]
* Stopping early crypto disks... [OK]
* Will now halt
[ 155.0007241 reboot: Power down
Система чисто выключается, и у нас нет проблем.
Если live-USB нет, выключение происходит следующим образом:
wait-for-state stop/waiting
* Stopping rsync daemon rsync [OK]
* speech-dispatcher disabled: edit /etc/default/speech-dispatcher
* Asking all remaining processes to terminate... [OK]
* Killing all remaining processes... [fail]
ModemManager[971]: <info> Caught signal, shutting down...
ModemManager[971]: <info> ModemManager is shut down
nm-dispatcher.action: Caught signal 15, shutting down...
* Deactivating swap... [OK]
* Unmounting local filesystems... [OK]
* sda4_crypt (busy)...
* Stopping early crypto disks... [fail]
* Stopping early crypto disks... [OK]
mount: / is busy
* Will now halt
[240.184072] INFO: task kworker/6:1:124 blocked for more than 120 seconds.
[240.184132] Not tainted 3.19.0-47-generic #53~14.04.1-Ubuntu
[240.184176] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[240.184418] INFO: task alsa-sink-USB A:2037 blocked for more than 120 seconds.
[240.184469] Not tainted 3.19.0-47-generic #53~14.04.1-Ubuntu
[240.184512] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[240.184710] INFO: task pulseaudio:2563 blocked for more than 120 seconds.
[240.184758] Not tainted 3.19.0-47-generic #53~14.04.1-Ubuntu
[240.184802] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
На этом этапе система продолжает отправлять вышеуказанные ошибки через регулярные промежутки времени и никогда не завершает работу должным образом. Единственный способ исправить это - вручную выключить машину.
Настроить:
У меня двойная загрузка Windows 10 и Ubuntu 14.04 на рабочем столе. Перед установкой Ubuntu я установил Windows 10 и зашифровал ее с помощью VeraCrypt. Эти два используют /sda1 и /sda2. Затем я попытался установить Ubuntu с live-USB, следуя этим двум инструкциям:
[1] https://thesimplecomputer.info/full-disk-encryption-with-ubuntu
[2] http://techblog.mastbroek.com/all-articles/dualboot-encrypted-windows-and-ubuntu/5/
Я в основном следовал [1] и в основном ссылался только на [2] для настройки LVM. /boot находится в незашифрованном разделе / sda3, а swap и root - в LVM внутри раздела LUKS, /sda4. Все сделано с использованием UUID. Когда все сказано и сделано, моя система выглядит так:
$ sudo lsblk -o name,uuid,mountpoint
NAME UUID MOUNTPOINT
sda
├─sda1 16808C90808C784F
├─sda2
├─sda3 41589165-270f-4be5-bbfd-7fe66112f485 /boot
└─sda4 dd217bb3-30f3-496a-8dc9-12abc62e0b0f
└─sda4_crypt (dm-0) BJA0uf-k4EW-SpaJ-GfTN-5orX-K5AM-IGuKcD
├─MyVolume-swapvol (dm-1) 71149c9e-22b7-4349-8045-a632f2ff63c6 [SWAP]
└─MyVolume-rootvol (dm-2) 1c5cf473-72a5-4066-b65e-2fdbe78fa231 /
sdb
├─sdb1 8EBC75B8BC759C01
└─sdb2 D20877650877478D
sdc
└─sdc1 68463BC6463B9432
sdd
└─sdd1 B88407A8840767E8
sr0
Содержание fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=1c5cf473-72a5-4066-b65e-2fdbe78fa231 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda3 during installation
UUID=41589165-270f-4be5-bbfd-7fe66112f485 /boot ext2 defaults 0 2
UUID=71149c9e-22b7-4349-8045-a632f2ff63c6 none swap sw 0 0
Содержание crypttab:
sda4_crypt UUID=dd217bb3-30f3-496a-8dc9-12abc62e0b0f none luks,discard,lvm=MyVolume
Насколько я могу судить, все выше выглядит правильно. Я подозреваю, что проблема не в монтировании / размонтировании зашифрованной системы, а в некоторой странной зависимости с файлами на live-USB. Кажется, это означает, что что-то пошло не так с шагами 6 руководства [1], когда я сделал chroot от live-USB до зашифрованной файловой системы. Соответствующие команды (непосредственно из [1]), начиная с live-USB:
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/mapper/sda1 root/boot
chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
При этом я изменил /sda1 и /dev/mapper/... так, как это необходимо для моей системы.
Если на самом деле что-то пошло не так, я понятия не имею, как даже диагностировать проблему, не говоря уже о ее устранении.