Создание зашифрованного раздела на существующем диске с одним основным разделом при сохранении данных

fdisk -l:

Disk /dev/sda: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes` 

parted -l:

 Model: ATA WDC WD10EZEX-21W (scsi) Disk /dev/sda: 1000GB Sector size (logical/physical): 512B/4096B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0,00B 1000GB 1000GB ext4 

Цель: этот диск должен иметь 1 зашифрованный раздел со всеми моими данными, но не операционную систему и (не обязательно) 1 незашифрованный раздел

На этом диске имеется 200 ГБ данных. (только данные, никаких системных файлов – ОС на 250 ГБ SSD). У меня нет другого хранилища, где я могу хранить файлы во время работы с этим диском (у моего ssd есть ~ 50 г свободного места).

Я могу изменить размер этого первичного раздела, но я не могу создать новый раздел в свободном пространстве: gparted говорит, что на этом диске может существовать только 1 первичный раздел. Помогите?

ОС: Ubuntu 16.04

Как указано Richard, файловая система запускается в самом первом секторе диска: у вас нет разделов. Чтобы создать зашифрованный раздел, вам нужно сначала создать таблицу разделов. И вам нужно иметь два раздела, если вы хотите иметь зашифрованный раздел, потому что вам нужно некоторое незашифрованное пространство для загрузчика.

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

Файловая система ext4 оставляет первые 512 байтов неиспользованными, а таблица разделов MBR подходит для первых 512 байт диска, поэтому у вас есть место для таблицы разделов MBR. (Обратите внимание, что это должен быть MBR, а не GPT.)

Во-первых, загрузите некоторые спасательные носители. Не пытайтесь делать это, пока монтируется файловая система. SystemRescueCd хорош для такого рода вещей.

Если более половины свободного места на диске свободны, вы можете создать раздел во второй половине диска следующим образом:

  1. Определите путь к дисководу. Обратите внимание, что система спасения может называть диски иначе, чем ваша обычная система. Здесь я буду предполагать, что путь – /dev/sda .
  2. resize2fs /dev/sda чтобы уменьшить файловую систему примерно так же, как и будет. Вы можете видеть, сколько свободного места у tune2fs -l /dev/sda .
  3. Запустите fdisk /dev/sda . Fdisk создаст в памяти «таблицу disk disabel», то есть таблицу разделов MBR. Введите n и создайте новый основной раздел, который начинается после окончания файловой системы . Введите w чтобы записать новую таблицу разделов и выйти из fdisk.
  4. Скопируйте файловую систему в новый раздел с помощью head -c SIZE /dev/sda1 где SIZE – это размер файловой системы после сжатия.
  5. Убедитесь, что новый раздел данных безопасен.
  6. Теперь вы можете создавать разделы, охватывающие первую половину диска, где находится старая копия файловой системы.

Если более половины диска используется, вы испытываете некоторую боль. Я думаю, вы можете сделать это, сначала преобразовывая данные в том LVM с блоками , затем сокращая файловую систему, логический том и физический том и используя gparted для перемещения начала физического тома . Но я никогда не делал ничего подобного, поэтому три раза проверяю ваши резервные копии.

Если у вас может быть только один раздел, значит, у вас нет таблицы разделов: вы просто используете необработанный диск. Я просмотрел Partition Table: loop и нашел много вещей, которые, похоже, подтверждают, что вы используете необработанное устройство.

Должна быть возможность перемещать файловую систему и вставлять таблицу разделов, которая указывает на нее как раздел. Затем вы можете добавить еще один раздел и т. Д.

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

Я сделал это один раз и был в горячих потах, так как это прерывалось часами, прежде чем заставить его работать. В другой раз я случайно написал данные.

Возможно, будет возможно загрузить переносимый дистрибутив, измените размер раздела как можно меньшим, разделив его, создайте другое, зашифруйте его, переместите данные в новый зашифрованный раздел. Теперь это оставляет несколько опций: сохранить старый раздел в качестве /boot (что может потребоваться для запуска GRUB, затем разблокировать зашифрованный диск) или удалить старый раздел, изменить размер зашифрованного раздела, чтобы использовать весь диск, и использовать Встроенный криптовальный модуль GRUB для разблокировки нового тома LUKS без необходимости использования раздела /boot (который лично я обнаружил, что на разблокирующих дисках очень медленно работает).