Мне нужно создать необработанный образ диска для использования на виртуальной машине, но мне нужно создать разделы до создания файловой системы или установки операционной системы.
Кто-нибудь может описать процесс, чтобы сделать это?
Мне нужно создать необработанный образ диска для использования на виртуальной машине, но мне нужно создать разделы до создания файловой системы или установки операционной системы.
Кто-нибудь может описать процесс, чтобы сделать это?
Сначала создайте пустой необработанный образ диска (в данном случае 25 ГБ):
# dd if=/dev/zero of=disk.img bs=1024k seek=25600 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.7301e-05 s, 0.0 kB/s
# ls -lh
total 2.0G
-rw-r--r-- 1 root root 25G Dec 13 11:13 disk.img
Дайте ему таблицу разделов:
# parted disk.img mklabel msdos
Смонтируйте его как петлевое устройство (самый простой способ определить цилиндры, головки и сектора):
# losetup -f disk.img
# losetup -a
/dev/loop0: [0801]:12059103 (/path/to/disk.img)
Убедитесь, что оно является допустимым блочным устройством:
# fdisk /dev/loop0
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/loop0: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000db005
Device Boot Start End Blocks Id System
Затем используйте fdisk
чтобы разделить его, как вы хотите:
# fdisk /dev/loop0
Когда вы закончите, вам нужно отсоединить устройство (сначала потребуется отключить и отключить его):
# losetup -d /dev/loop0
Полностью автоматизированная процедура
Создайте образ my.img
с одним разделом ext4:
sudo apt-get install kpartx
img='my.img'
dd if=/dev/zero of="$img" bs=512 count=131072
printf 'o\nn\np\n1\n\n\nw\n' | fdisk "$img"
sudo kpartx -av "$img"
sudo mke2fs -t ext4 /dev/mapper/loop0p1
mkdir d
sudo mount /dev/mapper/loop0p1 d
# Do something to the ext partition.
sudo touch a
sudo umount d
sudo kpartx -dv "$img"
Проверено на Ubuntu 14.04.
"Твердые" части:
монтирование файла образа с несколькими устройствами петлевого разделения. Здесь мы использовали kpartx
, но есть и другие методы: Как я могу смонтировать раздел из образа блочного устройства, созданного dd (например, HDD) под Linux?
создание разделов неинтерактивно. Здесь мы только что обратились к fdisk
как упомянуто в: Создание и форматирование раздела с использованием скрипта bash.