Могу ли я отключить полное шифрование диска?

41

Я недавно установил Ubuntu 12.10, и для загрузки требуется пароль (я установил его с зашифрованной файловой системой).

Нужно ли переустанавливать, чтобы перейти на стандартную незашифрованную файловую систему?

Zzealdor
источник
Вы зашифровали всю установку Ubuntu или только свой домашний каталог?
Flimm
Я зашифровал во время установки, поэтому я угадал всю установку.
Zzealdor
3
Я новый пользователь, поэтому я не уверен, как все работает в Linux (полностью сыт по горло Microsoft!)
Zzealdor
@Rinzwind Наверное, нет. Этот метод (ecryptfs) шифрует домашний каталог и не требует дополнительного пароля; пароль для входа используется.
Jan
1
@ user163872: Новые версии Ubuntu (12 и 13) работают очень медленно на старых компьютерах, таких как нетбуки. Вам следует установить Lubuntu, который рассчитан на скорость и работает очень быстро на старых / медленных компьютерах, даже с небольшим объемом ОЗУ (т.е. 512 МБ). Lubuntu - это почти то же самое, что и обычная Ubuntu - только рабочий стол / меню немного отличаются. Но все, что работает на обычной Ubuntu, будет работать и в Lubuntu.
Лара

Ответы:

22

Если Ubuntu запрашивает парольную фразу шифрования во время загрузки (т. Е. В текстовой консоли перед отображением экрана входа в систему), это означает, что использовался метод полного шифрования диска. (Есть несколько способов сделать это, но я оставлю общий ответ.) Шифрование обрабатывается дополнительным программным уровнем между файловой системой и физическим жестким диском, а не самой файловой системой.

Нет простого метода или инструмента, чтобы отменить это. С некоторыми знаниями о том, как работают системы Linux, это можно сделать. Вам придется переместить всю файловую систему (или все файлы) в другой раздел (с достаточным количеством свободного места) или внешний жесткий диск. Затем удалите зашифрованный контейнер и заново создайте файловую систему без шифрования. Наконец, убедитесь, что новая файловая система правильно распознается загрузчиком и mount -aперед перезагрузкой.

Если возможно, лучше избегать этой трудоемкой и подверженной ошибкам процедуры. Просто сделайте новую установку. Для новых пользователей это самый быстрый и безопасный вариант.

PS: Скорее всего, вы можете изменить кодовую фразу шифрования, возможно, на пустую строку. Тогда для расшифровки требуется только нажать Enter. Может быть, вы можете пойти дальше и подавить (теперь бесполезно) приглашение пароля. Однако это не отключает шифрование. Данные все равно будут зашифрованы, хотя шифрование будет бесполезным, так как ключ может быть тривиально угадан.

январь
источник
3
Теоретически, вы не должны быть в состоянии сделать что-то вроде "dd if = / dev / mapper / sda5_crypt of = / dev / sda5 bs = 32M"?
Рой
@ Рой, я думаю, что это будет работать, если и только если верно следующее: 1. ddи базовые драйверы не пишут, пока они не закончат чтение каждого блока (вероятно, есть флаги и настройки, чтобы гарантировать это) 2. чтение / запись блоки не перекрывают края блоков шифрования (могут быть проверены, могут потребоваться некоторые математические операции) 3. важная информация заголовка, необходимая для расшифровки, не перезаписывается до завершения (проверьте базовый формат шифрования, возможно, процесс от начала до конца). Я думаю, что это возможно, но потребуется более тщательная настройка и анализ.
fuzzyTew
20

Ниже это мое решение, которое сработало. Имейте в виду, что я не специалист по Linux, так что это может быть не лучшим решением. Не могу найти лучшего в любом случае.

Перенос установки FDE в незашифрованный раздел

ПРИМЕЧАНИЕ : всякий раз, когда я говорю, я имею в виду

/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition

Копирование данных из зашифрованной корневой файловой системы

Загрузиться с живого CD. Я использовал Ubuntu 13.10 32-битный рабочий стол ISO.

Смонтируйте свой раздел:

sudo cryptsetup luksOpen /dev/sda5 crypt1

Скопируйте исходные данные в целевой раздел и сохраните dd PID в переменную pid:

sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!

Это будет проверять каждый второй процесс dd с сигналом USR1 и статусом результатов dd:

while sudo kill -USR $pid; do sleep 1; done

Альтернатива мониторингу ДД

Если вам не нравится вышеприведенный метод while, вы можете использовать часы. Откройте другое окно терминала и получите PID:

pgrep -l '^dd$' | awk '{ print $1 }'

Замените на ваш идентификатор процесса:

watch kill -USR1 <pid>

Вы должны видеть вывод в вашем терминале дд каждые 2 с.

Настройка новой корневой файловой системы и разделов

Когда это будет сделано, вы можете смонтировать раздел без шифрования, чтобы убедиться, что все в порядке:

sudo mount /dev/sda3 /mnt

После этого размонтируйте ваш раздел:

sudo umount /dev/sda3

Освободить раздел склепа:

sudo cryptsetup luksClose /dev/sda5

Запустите gparted. Удалите свой раздел LUKS (как расширенный, так и логический). Измените размер вашего / dev / sda3 и двигайтесь влево. Создать раздел подкачки.

Примечание: перемещение вашего / dev / sda3 влево может занять много времени. Для меня это заняло 30 минут на 120GB раздел и SSD диск. Если у вас есть 500 ГБ + жесткий диск, будьте готовы к нескольким часам ожидания. Возможно, вы захотите создать swap перед вашим разделом вместо того, чтобы перемещать ваш / dev / sda3.

Создайте новую файловую систему подкачки в вашем разделе подкачки:

sudo mkswap /dev/sda2 

и хранить где-нибудь UUID.

Получите UUID вашего корневого раздела:

sudo blkid /dev/sda3

Редактировать fstab:

sudo nano /etc/fstab

Удалите или закомментируйте строки overlayfs и tmpfs.

Добавьте замену строки на результат blkid:

UUID=<uuid_root> /  ext4 errors=remount-ro 0 1
UUID=<uuid_swap> none swap sw 0 0

Удалить файл:

rm /etc/crypttab

Обновите ваши initramfs, чтобы избежать ошибок типа «cryptsetup: evms_activate is not available»:

sudo -i
mount /dev/sda3 /mnt
mount -t proc none /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount /dev/sda1 /mnt/boot
chroot /mnt /bin/bash
apt-get remove --purge cryptsetup
update-initramfs -u -k all

Заключительные замечания и устранение неисправностей

Это сработало для меня, однако есть шанс, что выполнение вышеописанного шага может не сработать для вас. До того, как я понял метод update-initramfs, я несколько раз переустанавливал ядро, а также модифицировал grub. Однако это не должно быть дело для вас. Помните, что приведенные выше инструкции могут удалить ваши данные, поэтому будьте осторожны и делайте BACKUP , ДО того, как продолжить.

На всякий случай, если у вас проблемы с ядром (chrooted и / boot смонтированы):

uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic

Конечно, замените linux-image-3.XY-ZZ на дату вашего ядра от uname.

или GRUB (вне chroot):

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

Более подробная информация: https://help.ubuntu.com/community/Boot-Repair

Удачи

NeverEndingQueue
источник
1
Я считаю, что вы должны заменить UUID раздела подкачки /etc/initramfs-tools/conf.d/resumeвручную, и я бы рекомендовал копировать содержимое файловой системы с cp -aили, rsync -aкак это было бы быстрее в целом и безопаснее для твердотельных накопителей.
LiveWireBT
Спасибо за то, что сделали мою разработку более удобной для пользователя. Я не делал изменения резюме, также боялся использовать cp или rsync, думал, что dd (необработанное копирование с устройства на устройство) является подходящим инструментом для таких задач. Я делал это на ВМ, но изображение было размещено на SSD. Не могли бы вы уточнить: «безопаснее для SSD», пожалуйста?
NeverEndingQueue
Использование ddкопирует весь раздел, даже блоки, которые должны быть пустыми, что вызывает ненужные записи на SSD (а на некоторых это даже вредит производительности записи почти во все ячейки). Несколько лет назад я и некоторые другие также обнаружили, что копирование с помощью ddи активация TRIM (опция сброса EXT4) приведет к тому, что TRIM удалит блоки, которые, по его мнению, пусты, и через несколько часов оставит вас с нарушенной установкой.
LiveWireBT
В первом метод мониторинга должен быть USR1 вместо USR. Я знаю, что это очевидно, но может быть проблемой для новичков, таких как я;)
Goodfellow
9

В случае, если все в порядке, чтобы сохранить шифрование, но отключить запрос пароля, гораздо более простой подход состоит в том, чтобы просто установить тривиальный пароль, такой как «пароль», и затем сохранить этот тривиальный пароль в initramfs в открытом тексте. Отключите пароль шифрования LUKS .

По сути, добавьте скрипт-ловушку, который, в свою очередь, добавляет «ключ скрипта» к initramfs. Обычно эти сценарии используются для получения пароля через Bletooth, с USB-накопителя и т. Д., Но в этом случае просто заставьте его напечатать простой пароль.

Ричард А
источник