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