Это может работать:
du -hs * | sort -h
Если Ваша копия du
не поддерживает -h
флаг, затем можно преобразовать использование чисел awk
.
du -ks * | awk '
function human(x) {
s="kMGTEPYZ";
while (x>=1000 && length(s)>1)
{x/=1024; s=substr(s,2)}
return int(x+0.5) substr(s,1,1)
}
{gsub(/^[0-9]+/, human($1)); print}'
Том LUKS начинается с заголовка ([1168482]до 2МБ[1168483]). Если вы потеряете заголовок, данные на томе будут потеряны. Пока заголовок не поврежден, вы можете получить доступ к данным в независимых 512-байтных секторах.
Стратегия типа [1168484]cat /dev/mapper/encrypted >/dev/sdz99[1168485] будет работать, так как шифрованный текст расположен с положительным смещением (размером заголовка) относительно простого текста. Однако, это вполне может быть медленнее, чем восстановление из резервной копии, потому что это копия на том же диске (при копировании с диска на диск чтение и запись выполняются параллельно). Для копии с одного и того же диска
dd[1168882] с большим размером блока только немного быстрее, чем [1168883]cat. В этой стратегии есть главное предостережение: если во время копирования произойдет сбой питания или другой системный сбой, весь ваш раздел будет перезаписан, так как заголовок был перезаписан первым делом.
Если ваше резервное хранилище очень медленное, то вы можете использовать эту стратегию сдвига - простое [1168488]cat[1168489] сдвиг подойдет - и вернуться к восстановлению из резервной копии, если случится что-то плохое.
Если резервное хранилище действительно громоздкое, то другим подходом будет:
Уменьшить размер файловой системы ([1168885]изменить размер2fs[1168886]).
Уменьшить размер логического тома ([1168887]lvreduce[1168888]).
Уменьшить размер физического тома ([1168889]pvresize[1168890]).
Уменьшите зашифрованный том[1168892].
Уменьшите раздел ([1168893]fdisk[1168894] или [1168895]gdisk[1168896]) и создайте новый раздел в свободном пространстве.
Создайте физический том в новом разделе ([1168897]pvcreate[1168898]) и добавьте его в группу томов ([1168899]vgextend[1168900]).
Сдвиньте как можно больше физических объемов с зашифрованного тома ([1168901]pvmove[1168902]).
Если зашифрованный том не пустой, повторите с шага 1.
Избавьтесь от неиспользуемого физического тома ([1168903]vgreduce[1168904], а затем [1168905]pvremove[1168906]).
Длинный и нечестный? Да. Опять же, я рекомендую восстановить из резервной копии.[1168158].
Если только небольшая часть тома покрыта данными, то может быть быстрее уменьшить том LUKS, создать за ним новый и скопировать данные на уровне файловой системы ([1131616]cp -a[1131617]).[1131255].
Я решил проверить это в виртуальной машине VirtualBox с прикрепленным 2 ГБ томом виртуального жесткого диска в виде /dev/sdb. Я написал несколько скриптов (см. конец ответа) для проверки удаления LUKS-слоя из стека файловой системы. Вторая важная вещь (первая - полная резервная копия ваших данных) - это выгрузить заголовок LUKS во внешнее хранилище и открыть том LUKS этим внешним заголовком (поскольку заголовок на томе будет перезаписан). Без него скорость отказов составляет ~50% (2 теста из 4 неудачных). С внешним заголовком 4 из 4 тест был успешным... В любом случае, я был слишком ленив, чтобы делать больше проверок (я проверил только md5sum одного большого файла), так что нет никакой гарантии, что ваши данные будут в безопасности. Вам, вероятно, придется отредактировать скрипт, если вы хотите поиграть с ним (строка с [1132520]Disk=/dev/sdb[1132521])