Как я могу вырастить 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. lvcreate vg-lv2
    2. $randompassword = $(pwgen)
    3. cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2, с $randompassword как ключ.
    4. cryptsetup luksOpen /dev/mapper/vg-lv2 sanitize
    5. nice -20 ionice -c 3 dd if=/dev/zero of=/dev/mapper/sanitize bs=1M
    6. cryptsetup remove sanitize

  • Подготовьте блочное устройство к производственному использованию

    1. Выберите пароль
    2. cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/mapper/vg-lv2, с новым ключом.
    3. cryptsetup luksOpen /dev/mapper/vg-lv2 lv2
    4. mke2fs /dev/mapper/vg-lv2 (Я не помню аргументы, но не было, вероятно, ни одного),

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

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

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

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

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

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

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

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

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

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

.
3
ответ дан 3 December 2019 в 18:44

Теги

Похожие вопросы