При работе с виртуальными системами в Unix системах, часто приходится создавать образы дисков, о чем я и опишу здесь.

Представим, что нам нужно создать образ Файловой Системы размером ~512 Мб с файловой системой ext3.

Для этого воспользуемся командой dd:

# dd if=/dev/zero of=my_hdd.img bs=1k count=512000
512000+0 records in
512000+0 records out
524288000 bytes (524 MB) copied, 18,6485 s, 28,1 MB/s

count — отвечает за количество блоков.

Делаем ассоциацию с устройством:

# losetup /dev/loop0 my_hdd.img

Следующим шагом, создадим файловую систему. В помощь к нам придут fdiskи mkfs:

# fdisk /dev/loop0
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x58bbc7e9.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-63, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-63, default 63): +512M
Value out of range.
# Не правильно подобрал размер, пытаемся снова
Last cylinder, +cylinders or +size{K,M,G} (1-63, default 63): +500M
Value out of range.
# снова мимо
Last cylinder, +cylinders or +size{K,M,G} (1-63, default 63): +450M
# В точку. Установим тип ФС=Linux (это номер 83)
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
 
# Записываем изменения и выходим
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
 
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

Теперь форматируем наш свежеприготовленный виртуальный диск

# mkfs.ext3 /dev/loop0
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
 
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Диск готов, можно его монтировать:

# mount /dev/loop0 /mnt/
# ls /mnt
lost+found
# umount /mnt/

Порядок.. Диск можно использовать для нужных вам целей.

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/1382


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

Please note: JavaScript is required to post comments.