Сломана загрузка Debian при попытке автоматического монтирования зашифрованного раздела
Я сделал довольно тщательно зашифрованную, сбалансированную и хорошо работающую файловую систему с помощью dm-crypt/LUKS/cryptsetup, но я допустил ошибку, оставив домашнюю папку незашифрованной при первой установке Debian (jessie).
Поскольку эта система превратилась в высокоорганизованную и очень упрощенную систему, на создание которой ушли недели, я хотел зашифровать домашнюю папку с минимальными изменениями в системе. У меня уже был большой зашифрованный раздел на отдельном диске для пользовательских документов и проектов, поэтому я подумал: почему бы просто не переместить туда данные домашней папки и вместо этого указать на них Debian?
Это, очевидно, повлечет за собой автоматическое монтирование зашифрованного раздела, который я хочу использовать при каждой загрузке. В настоящее время он монтируется только при необходимости, используя скрипт, который вызывает "cryptsetup luksOpen" и "mount". Поэтому, прежде чем вводить "usermod -d" и редактировать "HOME=" в "/etc/default/useradd", первым делом нужно было автоматически смонтировать существующий работающий зашифрованный раздел. Просто, правда?
Ну, я как-то напутал, потому что теперь система не загружается...
Вот что я сделал:
Внимательно прочитав тему, чтобы убедиться, что я ничего не пропустил, я отредактировал "/etc/crypttab" и "/etc/fstab" в этом порядке.
Мой crypttab был прост: он содержал две строки. Они оба были добавлены установщиком Debian, когда система была новой, и у меня никогда не было проблем с ними:
sda2_fsroot UUID = deadbeef-dead-beef-dead-beefdeadbeef none luks
sda3_swappart UUID = beefdead-beef-dead-beef-deadbeefdead none luks, swap
(Очевидно, я изменил UUID для этого поста)
(Да, я знаю, что мог бы просто использовать urandom в качестве ключевого файла для свопа. Сначала я хочу это исправить)
Я не был уверен, какой UUID добавить в дополнительную строку, которую я собирался поставить там, потому что blkid показал и "UUID", и "PARTUUID" для раздела, который я пытался автоматически смонтировать (это раздел GPT). Мне было трудно найти конкретные ответы по этому поводу, поэтому я решил просто обдумать это и следовать инструкции, введя UUID следующим образом:
документы UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx нет
(Здесь x - UUID, а не PARTUUID раздела, который я хотел смонтировать. Мой источник был blkid, и я скопировал его, чтобы убедиться, что все правильно)
(Это было добавлено как новая строка непосредственно под существующими двумя строками в crypttab)
Затем я сохранил crypttab и открыл fstab. В fstab я просто добавил следующую строку прямо под нижней (это был DVD-привод):
/ dev / mapper / документы / хранилище / документы ext4 по умолчанию 0 2
(Здесь "/storage/documents" - папка и точка монтирования, которые я всегда использовал для этого раздела)
Параметры "ext4", "defaults", "0" и "2" должны быть правильными в соответствии с тем, что я прочитал и сделал, и просто для защиты от глупых ошибок, таких как использование табуляции вместо пробела, я фактически скопировал эти параметры из существующей рабочей строки для sda2_fsroot (будет ясно: sda2_fsroot монтируется как /).
Затем, после некоторого дополнительного поиска в Интернете и чтения, я неохотно (так как это похоже на операцию на сердце) запустил с правами root:
update-initramfs -u
Затем я перезагрузился. И это не работает...
Я получаю приглашение ввести пароль для fsroot и swappart. Я ввожу оба пароля и получаю сообщение, что блоки в fsroot выглядят нормально. И тогда ничего. Меня никогда не спрашивают пароль для документов. Загрузка никогда не продолжается.
Перезагрузка в режиме восстановления не помогает. Он тоже зависает в процессе загрузки.
Поскольку я хотел принять меры предосторожности, какими бы простыми это ни казалось, я фактически сделал резервную копию четырех файлов в /boot/ (vmlinuz, initramfs и двух других), прямо перед тем, как я внес изменения в crypttab и fstab и запустил update-initramfs.
Поэтому, не найдя ответов на этот вопрос в Интернете, я загрузил живой DVD-диск Debian, подтвердил, что все мои зашифрованные диски все еще не повреждены и монтируются, как обычно, и попытался восстановить четыре файла в /boot/ в их прежнем состоянии, как я подозреваю, виновным является initramfs (может быть, что-то связанное с движением Debian?).
Для большей безопасности я не УДАЛЕН четыре файла в /boot/ и не заменил их: я полагаю, что эта папка / раздел настолько особенная, что может зависеть от файлов, занимающих специальные сектора на диске. Поэтому, чтобы быть уверенным, я переименовал все четыре обновленных файла с расширением ".bak", а затем скопировал старые версии с "правильным" именем файла в "/boot/", оставив обе версии в папке.
Результат?
Теперь меня даже не просят ввести пароль... Когда я загружаюсь, я получаю черный экран с мигающим подчеркиванием, который просто сидит, как будто процессор остановлен.
Что мне теперь делать?
Я просто недостаточно хорошо знаю низкоуровневые детали initramfs, fstab и так далее, и я действительно удивлен тем, как легко все это ломается, даже когда я пытаюсь подготовиться и быть осторожным!
Любая помощь будет принята с благодарностью!