Вы разрешаете только icmp типов 0,3,8,11. Попробуйте удалить их и разрешить все с
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
Если это сработает, то начните сначала и настройте типы icmp, которые вы хотите пропускать.
На самом упрощенном уровне существует утилита под названием cryptsetup -reencrypt , которая позволяет выполнять эту операцию. Он явно вызывает на своей справочной странице:
WARNING: The cryptsetup-reencrypt program is not resistant to
hardware or kernel failures during reencryption (you can lose your
data in this case).
ALWAYS BE SURE YOU HAVE RELIABLE BACKUP BEFORE USING THIS TOOL.
The reencryption can be temporarily suspended (by TERM signal or by
using ctrl+c) but you need to retain temporary files named
LUKS-<uuid>.[log|org|new]. LUKS device is unavailable until
reencryption is finished though.
Согласно разделу «Примеры» справочной страницы:
Remove LUKS encryption completely
cryptsetup-reencrypt /dev/sdb1 --decrypt
Скорее всего, это нужно будет сделать из «живой» среды (, что означает полностью работающую эфемерную среду Linux, подобную той, которая предоставляется Fedora Live или Ubuntu Live .
В качестве альтернативы этому рабочему процессу вы также можете выбрать более явный путь резервного копирования данных, удаления раздела и его повторного создания. В Arch Linux есть отличная документация по этому рабочему процессу, а также дополнительные шаги по устранению неполадок :
.https://wiki.archlinux.org/index.php/Removing_System_Encryption
Опять же,следует подчеркнуть, что это нетривиальная операция, и резервное копирование всех данных имеет первостепенное значение в случае катастрофического сбоя.
Как говорит @BrianRedbeard, для этого есть инструмент(cryptsetup-reencrypt
). Внимательно прочитайте соответствующую документацию. Это опасная операция. (В -место преобразования данных всегда есть. Один неверный шаг, и он превратится в дым.)
Просто для удовольствия, ручной процесс:
На самом деле это довольно просто (и не работает так в другом направлении! ). Вы можете просто скопировать его вот так:
pv < /dev/mapper/cryptsdx1 > /dev/sdx1
Но так как мы читаем и пишем на одно и то же физическое устройство, может быть быстрее сделать с dd
и большим размером блока (при условии, что у вас достаточно оперативной памяти ). На жестком диске это, вероятно, быстрее, поскольку он выполняет меньше операций поиска, а поиск выполняется медленно.
dd status=progress bs=1G iflag=fullblock if=/dev/mapper/cryptsdx1 of=/dev/sdx1
Но сначала вам следует сделать резервную копию заголовка LUKS, поскольку заголовок LUKS — это первое, что вы перезапишете в этом процессе, и вы не сможете возобновить работу, даже если захотите.
cryptsetup luksHeaderBackup /dev/sdx1 --header-backup-file myluksheader.backup
Убедитесь, что эта резервная копия в безопасности, а не только в оперативной памяти среды LiveCD.
Устройство LUKS в основном такое:
| LUKS HEADER | ENCRYPTED DATA |
а после пв/дд должно получиться вот так:
| DECRYPTED DATA | FREE SPACE |
Таким образом, заголовок LUKS находится в начале устройства и имеет размер около 2 МиБ (. Раньше он составлял 1 МиБ плюс несколько секторов ). И поскольку мы избавляемся от него, в конце устройства будет свободное место, и вы сможете увеличить файловую систему на 2 МБ. Уии!
Соответственно, сами данные находятся по смещению (обычно 2МиБ, сверьтесь сcryptsetup luksDump
). Это смещение важно здесь -оно означает, что данные должны быть не только расшифрованы, но и сдвинуты -начало расшифровки появится там, где изначально был сохранен заголовок LUKS.
Это также означает, что на протяжении всего процесса будет существовать перекрывающаяся область, которая существует как в расшифрованной, так и в зашифрованной формах. Это полезно в случае сбоя машины и необходимости найти точку возобновления -.
Итак, что делать в случае сбоя?
Сначала вам нужно повторно -создать шифровальное устройство, используя резервную копию:
cryptsetup --header myluksheader.backup luksOpen /dev/sdx1 cryptsdx1
Затем найдите точку перекрытия:
skip=0 # or skip=X if you're sure at least X bytes were copied
step=$((1024*1024)) # 1MiB, use 512KiB for old 1MiB headers (offset / 2)
while ! cmp --bytes=$step /dev/sdx1 /dev/mapper/cryptsdx1 $skip $skip
do
skip=$(($skip+$step))
done
cmp --bytes=$step /dev/sdx1 /dev/mapper/cryptsdx1 $skip $skip && echo $skip || echo fail
Наконец возобновить:
dd status=progress bs=1G iflag=fullblock,skip_bytes oflag=seek_bytes \
skip=$skip seek=$skip if=/dev/mapper/cryptsdx1 of=/dev/sdx1
Прежде чем использовать какой-либо метод в вашей реальной файловой системе, стоит выполнить пробный запуск на несвязанном разделе (или даже просто на петлевом устройстве ), просто чтобы убедиться, что он все еще работает.
Например, здесь я не принял во внимание новый формат LUKS2, который в своей базовой форме работает так же, как (заголовок 4МиБ ), но поддерживает такие странные вещи, как множественные сегменты данных и еще много чего. Поэтому, если вы используете такие функции, это немного сложнее (и я не думаю, что cryptsetup-reencrypt
еще не охватывает это ).