Назад | Перейти на главную страницу

Как я могу увеличить файловую систему ext4 внутри тома dm-crypt / LVM?

У меня есть диск такого формата:

sdc                          8:32   0   1,8T  0 disk  
└─sdc1                       8:33   0   1,8T  0 part  
  ├─vg-lv1 (dm-0)          254:0    0   900G  0 lvm   /media/lv1
  └─vg-lv2 (dm-1)          254:1    0   923G  0 lvm   
    └─lv2 (dm-9)           254:9    0   923G  0 crypt /media/lv2

lv2 является файловой системой ext4, но блочное устройство под ней (логический том vg-lv2) зашифровано с помощью dm-crypt.

Какие шаги необходимо предпринять для безопасного расширения этой файловой системы?

Я уже увеличил логический том и знаю, что придется resize2fs, но я думаю, мне придется что-то делать в dm-crypt слой.

Сначала я создал эту файловую систему в два шага (в псевдошелл-скрипте):

Когда оно было готово к производственному использованию, незашифрованное блочное устройство было обнулено (фактически записывались псевдослучайные данные в зашифрованное устройство).

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

  1. Я могу просто вызвать функции изменения размера, и в конечном итоге я использую все пространство, но мне эта идея не нравится.
  2. Я могу уменьшить логический том до прежнего размера, создать новый, проделать в нем эти шаги, затем удалить его, снова увеличить LV и надеяться, что он займет пространство ранее очищенного логического тома («надежда» вот почему мне не нравится такой подход)
  3. Я должен знать, без сомнения, на что /dev/mapper/vg-lv2 есть, и dd if=/dev/zero of=/dev/mapper/vg-lv2 bs=1M skip=$SKIPBLOCKS. Я могу не получить это $SKIPBLOCKS переменная неверна, поэтому мне действительно нужно знать, как я могу узнать, учитывая уже существующую файловую систему, которая является первым пустым блоком после нее, поэтому я могу рандомизировать это пространство и далее.

Вы можете изменить размер тома dmcrypt с помощью resize:

cryptsetup --help|grep -i resize
    resize <name> - resize active device

После этого вы можете resize2fs.

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

dd if=/dev/urandom of=/deleteme bs=1M

А затем удалите файл.

(для достижения наилучших результатов используйте tune2fs установить количество зарезервированных блоков на 0% (временно))