Нещодавно я встановив Ubuntu 12.10, і для його завантаження потрібна парольна фраза (я встановив її за допомогою зашифрованої файлової системи).
Чи потрібно перевстановлюватись, щоб змінити стандартну незашифровану файлову систему?
Нещодавно я встановив Ubuntu 12.10, і для його завантаження потрібна парольна фраза (я встановив її за допомогою зашифрованої файлової системи).
Чи потрібно перевстановлюватись, щоб змінити стандартну незашифровану файлову систему?
Відповіді:
Якщо Ubuntu запитує пароль для шифрування під час завантаження (тобто на текстовій консолі перед відображенням екрана входу), це вказує на те, що використовувався повний метод шифрування диска. (Існує більше ніж один спосіб зробити це, але я буду тримати відповідь загальною.) Шифрування обробляється додатковим програмним шаром між файловою системою та фізичним жорстким диском, а не самою файловою системою.
Немає простого методу чи інструменту для скасування цього. Маючи певні знання про те, як працюють системи Linux, це можна зробити. Вам доведеться перемістити всю файлову систему (або всі файли) на інший розділ (з достатньою кількістю вільного місця) або на зовнішній жорсткий диск. Потім вийміть зашифрований контейнер і відновіть файлову систему без шифрування. Нарешті, переконайтесь, що нова файлова система належним чином розпізнається завантажувачем та mount -a
перед перезавантаженням.
Якщо це можливо, краще уникати цієї трудомісткої та схильної до помилок процедури. Просто зробіть свіжу установку. Для нових користувачів це найшвидший і безпечний варіант.
PS: Цілком ймовірно, що ви можете змінити парольну фразу шифрування, можливо, на порожню рядок. Тоді для розшифрування потрібно лише натиснути Enter. Можливо, ви можете піти далі і подавити на (зараз марний) запит про фразу. Однак це не відключає шифрування. Дані все одно будуть зашифровані, хоча шифрування було б марним, оскільки ключ можна тривіально здогадатися.
dd
і основні драйвери не пишуть, поки вони не закінчать читати кожен блок (мабуть, є прапори та налаштування для забезпечення цього) 2. читання / запис блоки не перекривають краї блоків шифрування (можуть бути перевірені, можливо, передбачає деяку математику). 3. Важлива інформація заголовка, необхідна для розшифрування, не буде перезаписана перед завершенням (перевірити базовий формат шифрування, можливо, обробляти з кінця до початку). Я думаю, що це можливо, але знадобиться більш ретельне налаштування та аналіз.
Нижче моє рішення спрацювало. Майте на увазі, що я не є спеціалістом Linux, тому це може бути не найкращим рішенням. Не вдалося знайти кращого.
ПРИМІТКА : Щоразу кажу, я маю на увазі
/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition
Завантаження з живого компакт-диска. Я використовував 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 method", ви можете використовувати watch. Відкрийте інше вікно терміналу та отримайте PID:
pgrep -l '^dd$' | awk '{ print $1 }'
Замініть ідентифікатор процесу:
watch kill -USR1 <pid>
Ви повинні бачити вихід у своєму терміналі dd кожні 2 секунди.
По закінченні ви можете встановити нешифрований розділ, щоб побачити, чи нормально:
sudo mount /dev/sda3 /mnt
Після цього відключіть свій розділ:
sudo umount /dev/sda3
Випустіть розділ крипт:
sudo cryptsetup luksClose /dev/sda5
Виконати gparted. Видаліть свій розділ LUKS (як розширений, так і логічний). Змініть розмір / dev / sda3 і рухайтеся ліворуч. Створити розділ swap.
Примітка. Переміщення / dev / sda3 вліво може зайняти багато часу. Для мене це займало 30 хвилин на 120 Гб розділі та накопичувачі SSD. Якщо у вас є 500 ГБ + жорсткий диск, будьте готові до декількох годин очікування. Ви можете створити своп перед розділом замість переміщення / dev / sda3.
Створіть нову файлову систему swap на своєму розділі swap:
sudo mkswap /dev/sda2
і зберігати десь UUID.
Отримайте свій UUID кореневого розділу:
sudo blkid /dev/sda3
Редагувати fstab:
sudo nano /etc/fstab
Видаліть або коментуйте рядки з накладками та 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 недоступний":
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 , ДО цього не продовжуйте.
Про всяк випадок, якщо у вас є проблеми з ядром (встановлені з хронікою та / завантаження):
uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic
Звичайно, замініть linux-image-3.XY-ZZ датою ядра від уніме.
або 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
Удачі
/etc/initramfs-tools/conf.d/resume
вручну, і я б рекомендував копіювати вміст файлової системи на cp -a
або, rsync -a
як це було б у цілому швидше і безпечніше для SSD.
dd
копіює весь розділ, навіть блоки, які повинні бути порожніми, що призводить до непотрібних записів на SSD (а на деяких це навіть шкодить продуктивності запису майже на всі комірки). Кілька років тому я та деякі інші також виявили, що копіювання dd
та активація TRIM (опція скидання EXT4) призведе до того, що TRIM видалить блоки, які, на його думку, порожні, і залишить вас з порушеною установкою через кілька годин.
Якщо ви хочете зберегти шифрування, але вимкнути підказку парольної фрази, набагато простішим підходом є просто встановити тривіальний пароль на зразок "пароль", а потім зберегти цей тривіальний пароль у initramfs у явному тексті. Вимкніть пароль шифрування LUKS .
По суті, додайте сценарій гачка, який, в свою чергу, додає "іскрипт" клавіш до initramfs. Зазвичай ці сценарії використовуються для отримання пароля через Bletooth, через USB-накопичувач тощо, але в цьому випадку просто змусьте його надрукувати тривіальний пароль.