При работе с виртуальными системами в 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/?p=1382


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

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

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

Add your comment now

You must be logged in to post a comment.