Сломана загрузка Debian при попытке автоматического монтирования зашифрованного раздела

277
Alex Malkovich

Я сделал довольно тщательно зашифрованную, сбалансированную и хорошо работающую файловую систему с помощью 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 = хххххххх-хххх-хххх-хххх-ххххххххххх нет

(Здесь x - это UUID, а не PARTUUID раздела, который я хотел смонтировать. Мой источник был blkid, и я скопировал его, чтобы убедиться, что все правильно)

(Это было добавлено как новая строка прямо под существующими двумя строками в crypttab)

Затем я сохранил crypttab и открыл fstab. В fstab я просто добавил следующую строку прямо под нижней (это был привод DVD):

/ dev / mapper / документы / хранилище / документы ext4 по умолчанию 0 2

(Здесь «/ storage / documents» - папка и точка монтирования, которые я всегда использовал для этого раздела)

Параметры «ext4», «значения по умолчанию», «0» и «2» должны быть правильными в соответствии с тем, что я прочитал и сделал, и просто для защиты от глупых ошибок, таких как использование табуляции вместо пробела, я фактически скопировал эти параметры из существующей рабочей строки для sda2_fsroot (будет ясно: sda2_fsroot монтируется как /).

Затем, после некоторого дополнительного поиска в Интернете и чтения, я неохотно (так как это похоже на операцию на сердце) запустил с правами root:

update-initramfs -u

Затем я перезагрузился. И это не работает ...

Я получаю приглашение ввести пароль для fsroot и swappart. Я ввожу оба пароля и получаю сообщение, что блоки в fsroot выглядят нормально. И тогда ничего. Меня никогда не спрашивают пароль для документов. Загрузка никогда не продолжается.

Перезагрузка в режиме восстановления не помогает. Это тоже зависает в процессе загрузки.

Поскольку я хотел принять свои меры предосторожности, какими бы простыми это ни казалось, я фактически сделал резервную копию четырех файлов в / boot / (vmlinuz, initramfs и двух других), прямо перед тем, как я внес изменения в crypttab и fstab и запустил update-initramfs.

Поэтому, не найдя ответов на этот вопрос в Интернете, я загрузил live DVD DVD Debian, подтвердил, что все мои зашифрованные диски все еще не повреждены и монтируются, как обычно, и попытался восстановить четыре файла в «/ boot /» до их предыдущего состояния, как я подозреваю, виновным является initramfs (может быть, что-то связанное с движением Debian?).

Для большей безопасности я не УДАЛЕН четыре файла в / boot / и не заменил их: я полагаю, что эта папка / раздел настолько особенная, что может полагаться на файлы, занимающие специальные сектора на диске. Поэтому, чтобы быть уверенным, я переименовал все четыре обновленных файла с расширением «.bak», а затем скопировал старые версии с «правильным» именем файла в «/ boot /», оставив обе версии в папке.

Результат?

Теперь меня даже не просят ввести пароль ... Когда я загружаюсь, я получаю черный экран с мигающим подчеркиванием, который просто сидит, как будто процессор остановлен.

Что мне теперь делать?

Я просто недостаточно хорошо знаю детали низкого уровня initramfs, fstab и т. Д., И я действительно удивлен тем, как легко все это ломается, даже когда я пытаюсь подготовиться и быть осторожным!

Любая помощь будет принята с благодарностью!

1

1 ответ на вопрос

0
bixbyte

Начните с простого Linux, такого как mint и sys HD, с / в качестве загрузочного диска и выделите пространство подкачки. У меня никогда не было проблем с форматированием в Linux. Обычно я использую ext4.