3

У меня есть зашифрованный раздел LUKS, который НЕ входит в менеджер томов LVM. Это конец жесткого диска, и его размер составляет 250 ГБ, но я хочу добавить к нему еще 50 ГБ.

Я обычно использовал бы GParted для таких операций, но он не позволяет мне что-либо делать с разделами LUKS, даже не перемещаясь.

Как я могу сделать это без потери моих данных? (У меня нет другого места, чтобы поддержать это)

Это моя (GUID) таблица разделов:

GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): D630E573-66C0-4902-A4A2-A9D56AE54544
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 262922206 sectors (125.4 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          411647   200.0 MiB   EF00  
   2          411648        63326207   30.0 GiB    8300  Linux filesystem
   3       189155328       273041407   40.0 GiB    AF00  
   4       273041408       304498687   15.0 GiB    8300  
   5       336732160       337141759   200.0 MiB   0700  
   6       337141760       347627519   5.0 GiB     8200  
   8       452485120       976773134   250.0 GiB   8300  Linux filesystem

Вот как это выглядит в GParted:

Как видите, я хочу добавить эти 50 ГБ между sda6 и sda8 в sda8.

Можете ли вы помочь мне переместить /dev /sda8 назад, чтобы я мог затем расширить зашифрованный том и файловую систему внутри него?

2 ответа2

2

Это на самом деле сложнее, чем кажется. Причина в том, что для блокировки незашифрованный раздел LUKS должен указывать на очень конкретное место на диске, как указано в таблице разделов. Это место находится в самом левом углу раздела LUKS , я думаю, что за несколько байтов до начала файловой системы она шифруется. Файловая система LUKS может быть расширена только в том случае, если раздел LUKS не зашифрован. Таким образом, вы можете видеть, что легче развернуть его вправо, чем развернуть его влево, потому что при расширении влево больше может пойти не так.

Я смог сделать это с помощью KDE Partition Manager 3.3.1 , используя загрузочный USB-носитель KDE Neon . Однако я хотел бы предупредить, что я столкнулся с ошибкой в KDE Partition Manager которая была представлена ранее до версии 2.2.0 . Моя установка представляла собой зашифрованный раздел LUKS в передней части расширенного (логического) раздела с 40 ГБ свободного места на жестком диске перед расширенным разделом. Мне нужно было переместить расширенный раздел влево, затем переместить раздел LUKS в начало расширенного раздела, затем расшифровать раздел LUKS , развернуть раздел LUKS вправо, чтобы включить новые данные, и, наконец, снова зашифровать раздел LUKS . Ранняя версия KDE Partition Manager (1.x , которую я получил с помощью apt-get из Ubuntu 16.04 LTS) смогла расширить раздел слева, но я не чувствовал себя комфортно, принимая это изменение, потому что KDE Partition Manager не имел в частности, для поддержки LUKS , я не был полностью уверен, что GRUB сможет найти раздел и разблокировать его после перезагрузки. Поэтому я попытался скомпилировать KDE Partition Manager 2.2.0 на загрузочном USB-накопителе Ubuntu 16.04 LTS , и приложение не смогло физически перетащить расширенный раздел влево так же, как в версии 1.x Поэтому я загружал ежедневную сборку Ubuntu 18.04 LTS на загрузочный USB, а затем компилировал KDE Partition Manager 3.3.1 на этом устройстве (вместе с KDE Core 3.3.0). Та же проблема. Но в обоих случаях были некоторые проблемы с компиляцией, которые мне приходилось обходить путем непосредственного редактирования файлов Make, и причина этого заключалась в том, что я компилировал в Ubuntu вместо разновидности Ubuntu с собственными библиотеками KDE. Поэтому я установил Neon на загрузочный USB-носитель, непосредственно загрузил и установил KDE Partition Manager 3.3.1 через загрузчик программного обеспечения и снова столкнулся с той же ошибкой - я не смог переместить свой расширенный том влево. Теперь gparted может делать это очень хорошо, но у него нет поддержки LUKS . Поэтому я сделал прыжок веры и сделал следующее, что сработало:

  1. ЗАБРОНИРОВАЛ ВСЕ ЖЕСТКИЙ ДИСК.
  2. sudo apt-get install gparted для KDE Neon .
  3. Я использовал gparted чтобы переместить расширенный раздел влево на 40 ГБ, и сохранил изменения. (Я думаю, что я должен был сначала отключить мое пространство подкачки.) Это создало 40 ГБ свободного места в расширенном разделе слева от моего тома LUKS . Затем я вышел из gparted . Моя главная проблема была в том, что, поскольку gparted не поддерживает LUKS, я беспокоился, что он может сместить фронт тома LUKS по причинам выравнивания и фактически сделать его недоступным. Поэтому я тщательно учел тот сектор диска, где раздел LUKS начался до внесения каких-либо правок, и затем мне не пришлось использовать эти примечания.
  4. В KDE Partition Manager 3.3.1 я переместил (зашифрованный) том LUKS влево. Просто щелкните правой кнопкой мыши на томе LUKS , выберите Resize/Move , и я думаю, что вы просто перетащите значок в графическом интерфейсе влево. Вы знаете, что будете делать это правильно, потому что раздел LUKS красный и до и после его перемещения, что указывает на то, что он заблокирован все время (и поэтому таблица разделов по сути записывает новое местоположение места на диске, куда будет идти LUKS и делать расшифровку, когда пользователь входит в систему). Затем я нажал « Apply changes и стал ждать.
  5. В KDE Partition Manager 3.3.1 я щелкнул правой кнопкой мыши на томе LUKS и выбрал Unencrypt (возможно, он был open) и набрал мой пароль. Затем я щелкнул правой кнопкой мыши по тому же разделу и нажал Resize/Move... Затем я перетащил правый край раздела вправо, чтобы охватить 40 ГБ свободного места. Затем я снова нажал « Apply changes .
  6. Я щелкнул правой кнопкой мыши на разблокированном разделе LUKS и снова зашифровал его. Иконка сменила светло-голубую на красную.
  7. Я снова включил пространство подкачки (необходимо, потому что пространство подкачки Linux находится внутри моего расширенного раздела). Затем я вышел из KDE Partition Manager , завершил работу и перезагрузился, используя основной жесткий диск, который я только что разделил. Я смог расшифровать диск и войти без проблем. Уф!

Большое спасибо Андрюсу Стиконасу за поддержку этого действительно полезного приложения. В последний раз, когда я перемещал раздел LUKS, он использовал эти шаги, и это был кошмар.

Вот вывод из KDE Partition Manager который выводится на консоль, когда вы запускаете его с помощью sudo partitionmanager из CLI:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Loaded backend plugin:  "pmlibpartedbackendplugin"
"Using backend plugin: pmlibpartedbackendplugin (1)"
"Scanning devices..."
"Device found: ATA ST500LM021-1KJ15"
blkid: unknown file system type  ""  on  "/dev/sda4"
"Partition ‘/dev/sda4’ is not properly aligned (last sector: 976773167,    modulo: 48)."
"Device found:  USB DISK 2.0"
getting smart status failed for  "/dev/sdb" :  Operation not supported
"Partition ‘/dev/sdb2’ is not properly aligned (first sector: 404, modulo: 404)."
"Partition ‘/dev/sdb2’ is not properly aligned (last sector: 5139, modulo: 1044)."
"Scan finished."
"Add operation: Move partition ‘/dev/sda8’ to the left by 40.50 GiB"
"Applying operations..."
"Using backend plugin: pmlibpartedbackendplugin (1)"
"Scanning devices..."
"Device found: ATA ST500LM021-1KJ15"
"Partition ‘/dev/sda4’ is not properly aligned (last sector: 976773167, modulo: 48)."
"Device found:  USB DISK 2.0"
getting smart status failed for  "/dev/sdb" :  Operation not supported
"Partition ‘/dev/sdb2’ is not properly aligned (first sector: 404, modulo: 404)."
"Partition ‘/dev/sdb2’ is not properly aligned (last sector: 5139, modulo: 1044)."
"Scan finished."
"Add operation: Grow partition ‘/dev/sda8’ from 101.77 GiB to 142.26 GiB"
"Applying operations..."
"Using backend plugin: pmlibpartedbackendplugin (1)"
"Scanning devices..."
"Device found: ATA ST500LM021-1KJ15"
"Partition ‘/dev/sda4’ is not properly aligned (last sector: 976773167, modulo: 48)."
"Device found:  USB DISK 2.0"
getting smart status failed for  "/dev/sdb" :  Operation not supported
"Partition ‘/dev/sdb2’ is not properly aligned (first sector: 404, modulo: 404)."
"Partition ‘/dev/sdb2’ is not properly aligned (last sector: 5139, modulo: 1044)."
"Scan finished."
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/libexec/kf5/klauncher'
kdeinit5: Launched KLauncher, pid = 28349, result = 0
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Connecting to deprecated signal      QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
kdeinit5: opened connection to :0
kdeinit5: Got EXEC_NEW '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/file.so' from launcher.
kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/file.so'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
kdeinit5: Got EXEC_NEW '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/file.so' from launcher.
kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/file.so'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
kdeinit5: PID 28354 terminated.
kdeinit5: PID 28353 terminated.

Видите ту строку, которая гласит blkid: unknown file system type "" on "/dev/sda4"? /dev/sda4 - это мой расширенный раздел, и я подозреваю, что этот NULL-ответ от процесса blkid может быть причиной ошибки. Но я действительно не знаю. В любом случае, надеюсь, что это поможет вам.

1

Используйте KDE Partition Manager 2.2.0 или новее. Он поддерживает перемещение, создание и даже изменение размера разделов LUKS.

Редактировать: используя KPM: в основном GUI говорит само за себя, он предоставляет вам карту разделов, похожую на GParted (см. Изображение в оригинальном вопросе). Затем вы просто нажимаете кнопку перемещения, чтобы переместить раздел LUKS. Чтобы изменить размер раздела luks, сначала необходимо разблокировать его, поскольку KDE Partition Manager должен изменить размер внутренней файловой системы, что невозможно, пока крипта LUKS заблокирована. Так что вам нужно сделать это в два шага, сначала переместить заблокированный раздел luks, а затем разблокировать / изменить размер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .