Вопрос или проблема
Когда вы хотите использовать режим гибернации и заботитесь о безопасности, вам хотелось бы, чтобы swap был зашифрован. Но не с случайным паролем, выбранным для вас при запуске, а с фиксированным, предоставленным вами во время загрузки, чтобы состояние гибернации было доступно для восстановления при следующей загрузке.
Существовал крутой способ сделать это, который работал до Mint 15: Как: зашифровать всю систему
Это больше не работает на Petra. Может ли кто-нибудь помочь мне разобраться с этой проблемой? Основной виновник — скрипт /usr/share/initramfs-tools/scripts/local-top
не изменился, так что, я полагаю, это как-то связано с ядром. Похоже, что недавнее ядро просто игнорирует весь скрипт или, по крайней мере, часть, которая запрашивает пароль для swap.
О, и я смог получить запрос на ввод пароля, когда случайно загрузил Mint 16 с ядром от Mint 15.
Смотрите также связаный вопрос:
Некоторая информация для отладки
После открытия устройства swap с помощью sudo cryptsetup luksOpen /dev/sda5 cryptswap
:
sudo lsblk -o name,uuid
NAME UUID
sda
├─sda1 F251-38C0
├─sda2 c66b8e51-dd1b-4d92-8605-a3ba7df6af83
├─sda3 77af32db-038d-4c10-b302-039634cf943a
├─sda4 7a3cde35-ab80-4618-ad76-7aa064d55f56
├─sda5 fc068dd2-759c-4779-b521-c73cc5499e86
│ └─cryptswap (dm-1) 964eafeb-c88b-49c8-8b5e-6f8395e040b4
├─sda6 926fa7cc-6f97-4672-85a7-a1ed8f5bd842
├─sda7 804b9c88-907b-43d9-b23f-964c32ecc2ac
└─sda8 ce2cd926-133f-4e20-86f8-45bc4844271c
└─adama-docs (dm-0) 61a32b98-3b65-4af6-81ff-da090cae039f
sr0
cat /etc/crypttab
#cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
swap UUID=fc068dd2-759c-4779-b521-c73cc5499e86 none luks
cat /etc/fstab
UUID=926fa7cc-6f97-4672-85a7-a1ed8f5bd842 / btrfs defaults,subvol=@,compress,autodefrag 0 1
# /boot было на /dev/sda2 во время установки
UUID=c66b8e51-dd1b-4d92-8605-a3ba7df6af83 /boot ext3 defaults 0 2
# /boot/efi было на /dev/sda1 во время установки
UUID=F251-38C0 /boot/efi vfat defaults 0 1
# /home было на /dev/sda6 во время установки
UUID=926fa7cc-6f97-4672-85a7-a1ed8f5bd842 /home btrfs defaults,subvol=@home 0 2
# /mnt/ext4 было на /dev/sda7 во время установки
UUID=804b9c88-907b-43d9-b23f-964c32ecc2ac /mnt/ext4 ext4 defaults 0 0
# swap был на /dev/sda5 во время установки
UUID=964eafeb-c88b-49c8-8b5e-6f8395e040b4 none swap sw 0 0
/etc/initramfs-tools/conf.d/resume
RESUME=/dev/disk/by-uuid/964eafeb-c88b-49c8-8b5e-6f8395e040b4
обновление:
Когда я настраиваю все как указано выше, система действительно отображает привычный запрос на ввод пароля. Это происходит не каждый раз, а если и происходит, то это доли секунды до экрана входа (Linux Mint использует mdm для входа). Я полагаю, это состояние гонки; монтирование swap происходит параллельно с загрузкой системы; я ожидаю, что система будет ждать завершения загрузки до монтирования swap и сделает это как можно раньше. В противном случае, как она может восстановить состояние гибернации?
Есть аналогичный вопрос для Ubuntu: https://askubuntu.com/questions/396136/encrypted-home-partition-encrypted-swap-working-hibernate Кажется, это сработало для кого-то, если он зашифровал также корень.
Я все еще не знаю, какая у вас конфигурация и что именно происходит, когда вы пытаетесь перевести машину в режим гибернации, но я постараюсь ответить на вопрос.
У меня дистрибутив debian testing, но я думаю, что у вас не должно быть проблем с настройкой на вашем ПК. Просто посмотрите на мою конфигурацию, может быть, вы поймете, что не так в вашем случае.
Это мой тестовый диск:
root:~# lsblk -o name,uuid
NAME UUID
sda
├─sda1 727035387035047F
├─sda2 c55b13b7-ca46-488e-a78c-ac229cb6634c
├─sda3 1c379414-bac2-45d9-85c5-25163c663341
│ └─sda3_crypt (dm-0) 44cd4817-c27f-47aa-a7d5-b64276817a74
└─sda4 7774cf98-35fd-42fd-9891-7255c916fe02
└─sda4 (dm-1) 0905595d-db03-4cc9-93d6-7d1262c140a4
sda2
используется для загрузочного раздела, sda3
— для Linux, а sda4
— это swap-раздел. sda3
и sda4
зашифрованы, и вы хотите разблокировать раздел swap при загрузке. Вам нужно отредактировать несколько файлов для этого.
Файл /etc/fstab
:
UUID=0905595d-db03-4cc9-93d6-7d1262c140a4 swap swap defaults 0 0
Файл /etc/initramfs-tools/conf.d/resume
:
RESUME=/dev/disk/by-uuid/0905595d-db03-4cc9-93d6-7d1262c140a4
Файл /etc/crypttab
:
swap UUID=7774cf98-35fd-42fd-9891-7255c916fe02 none luks
Теперь вам нужно обновить initramfs:
update-initramfs -u -k all
Это решение работает для меня на моем тестирующем debian. Я ничего больше не делал, загрузка, разблокировка и гибернация работают без проблем.
ОБНОВЛЕНИЕ
Я думаю, я разобрался. Я установил систему и сделал то, что написал в ответе, но это не сработало. Может быть, из-за upstart — я использую sysvinit. Так что я снова установил систему, теперь используя встроенную функцию шифрования. Затем я проверил все три файла, и был различие только в файле /etc/fstab
— оказывается, вы не можете использовать UUID в /etc/fstab
, когда вы хотите монтировать или взаимодействовать с зашифрованными устройствами. Поэтому я снова установил систему (незашифрованную), и я создал отдельный раздел для swap. Два файла /etc/initramfs-tools/conf.d/resume
и /etc/crypttab
остаются теми же, но в файл /etc/fstab
я добавил следующую строку:
/dev/mapper/swap none swap sw 0 0
И это сработало — у меня был экран с запросом пароля, и загрузка остановилась до тех пор, пока не был введен правильный пароль. Я также проверил, работает ли гибернация, и она работает как ожидалось.
Ответ или решение
Включение зашифрованного раздела подкачки с пользовательским паролем в Linux Mint
Если вас интересует вопрос обеспечения безопасности при использовании гибернации на Linux Mint, вам вероятно понадобится настроить зашифрованный swap. Идея заключается в том, чтобы вместо случайного пароля, который генерируется системой при каждом запуске, использовать фиксированный пароль, введенный вами, что позволит восстановить сессию после следующей загрузки системы. Ранее существовал метод, который работал до версии Mint 15, но с выходом Mint 16 и более поздних версиях появился ряд трудностей, связанных, возможно, с изменениями в ядре.
Шаги для настройки:
-
Обновление файлов конфигураций
Убедитесь, что файлы
/etc/fstab
,/etc/crypttab
, и/etc/initramfs-tools/conf.d/resume
правильно настроены.Пример содержимого файлов будет следующим:
-
/etc/fstab
:/dev/mapper/cryptswap none swap sw 0 0
-
/etc/crypttab
:cryptswap UUID=Ваш-UUID none luks
-
/etc/initramfs-tools/conf.d/resume
:RESUME=/dev/mapper/cryptswap
Здесь
UUID=Ваш-UUID
следует заменить на соответствующий идентификатор вашего раздела подкачки. Это можно узнать с помощью командыlsblk -o name,uuid
.
-
-
Создание и активация зашифрованного swap
Используйте команду
cryptsetup
для шифрования swap-раздела и его открытия:sudo cryptsetup luksFormat /dev/sdaX sudo cryptsetup luksOpen /dev/sdaX cryptswap mkswap /dev/mapper/cryptswap swapon /dev/mapper/cryptswap
Здесь
/dev/sdaX
необходимо заменить на фактический раздел, который вы планируете использовать в качестве swap. -
Регистрация изменений в initramfs
После изменения конфигурации обязательно обновите initramfs:
sudo update-initramfs -u -k all
-
Диагностика и устранение проблем
Если после выполнения всех шагов система продолжает неправильно запрашивать пароль или не загружает swap, проверьте логирование системы на наличие ошибок, связанных с шифрованием и монтированием swap. Используйте команды
dmesg
илиjournalctl
для просмотра логов.
Решение проблем с конкурентным доступом:
Обратите внимание, что на некоторых системах может возникнуть гонка процессов во время загрузки, когда swap не успевает примонтироваться до вывода экрана авторизации. Для устранения этой проблемы может быть целесообразно настроить порядок монтирования в initramfs, добавив ожидающее условие перед стартом пользовательских или графических интерфейсов.
Такой подход должен помочь вам настроить зашифрованный swap с пользовательским паролем в Linux Mint, обеспечив безопасность данных и корректное восстановление состояния системы из гибернации.