Каждый раз, когда я расшифровываю свой диск Luks, раздел не отображается:
cryptsetup -v luksOpen /dev/md0 md0_crypt
lsblk
sdb 8:16 0 3,7T 0 disk
└─sdb1 8:17 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
sdc 8:32 0 3,7T 0 disk
└─sdc1 8:33 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
sdd 8:48 0 3,7T 0 disk
└─sdd1 8:49 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
когда я запускаю partprobe
partprobe
lsblk
sdb 8:16 0 3,7T 0 disk
└─sdb1 8:17 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
└─md0_crypt1 253:12 0 7,3T 0 part
sdc 8:32 0 3,7T 0 disk
└─sdc1 8:33 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
└─md0_crypt1 253:12 0 7,3T 0 part
sdd 8:48 0 3,7T 0 disk
└─sdd1 8:49 0 3,7T 0 part
└─md0 9:0 0 7,3T 0 raid5
└─md0_crypt 253:11 0 7,3T 0 crypt
└─md0_crypt1 253:12 0 7,3T 0 part
fdisk:
Disk /dev/mapper/md0_crypt: 7,3 TiB, 8001299677184 bytes, 15627538432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disklabel type: gpt
Disk identifier: A599A15F-07DA-B340-ADDC-AA56AE2E9249
Device Start End Sectors Size Type
/dev/mapper/md0_crypt-part1 2048 15627536383 15627534336 7,3T Linux
Я хочу монтировать раздел md0_crypt1 каждый раз при загрузке. Но без запуска partprobe каждый раз.
Я что-то пропустил?
решение1
Необычно разбивать устройства LUKS/LVM на разделы, и, как таковое, это не покрывается большинством стандартных инструментов. Фактически, сохранение разделов скрытыми на устройствах Device Mapper является функцией, поскольку виртуальные машины, использующие логические тома в качестве резервных устройств, обычно разбивают их на разделы, но НЕ хотят, чтобы их разделы отображались на хосте.
Я хочу монтировать раздел md0_crypt1 каждый раз при загрузке. Но без запуска partprobe каждый раз.
Вы практически застряли с этим. И как только вы втиснете это где-нибудь в свой скрипт инициализации, вы даже не заметите разницы... (другими словами: автоматизируйте это)
Прежде чем пытаться выполнить что-либо ниже этой точки, сделайте резервную копию.
Также сделайте это с LiveCD, где ничего не смонтировано.
Опция 1)
Вы можете вообще удалить лишнюю таблицу разделов (сдвинуть все данные на 2048 сек., т.е. на смещение первого и единственного раздела). Очень опасная dd
команда:
dd status=progress bs=1M if=/dev/mapper/md0_crypt1 of=/dev/mapper/md0_crypt
Примечание: dd'ing на таком месте должен гарантировать, что данные, которые еще не были прочитаны, не будут перезаписаны, поэтому в обратном направлении это работать не будет.
Вариант 2)
Преобразование таблицы разделов в LVM также может быть выполнимым (и не потребует перемещения каких-либо данных), однако LVM в наши дни предпочитает большую область метаданных, а также любит обнулять и стирать подписи. Поэтому вам нужно быть осторожным, чтобы избежать этого, и убедиться, что 1-й PE начинается с 1M, а не 2M или других больших значений по умолчанию.
[ replace /dev/loop0 with /dev/mapper/md0_crypt ]
# vgcreate --dataalignment 1M --metadatasize 128K vgname /dev/loop0
[ this step will wipe GPT signature ]
# pvs -o +pe_start /dev/loop0
PV VG Fmt Attr PSize PFree 1st PE
/dev/loop0 foobar lvm2 a-- 1020.00m 0 1.00m
^^^^^^^
[ 1st PE must be 1.00m (2048s) otherwise abort mission! ]
# lvcreate --wipesignatures n --zero n -l100%FREE -n lvname vgname
# file -sL /dev/vgname/lvname
/dev/vgname/lvname: Linux rev 1.0 ext4 filesystem data [...]
[ if there's no filesystem, something went wrong ]
Это можно сделать, но не следует пытаться делать это без полной резервной копии.