08 Şubat 2007

loopback image disk yapmak

Bugün initrd olarak da kullanabileceğiniz disk imajı yapmayı anlatmaya karar verdim. Gerçi yeni kerneller cpio arşivi kullanıyorlar ama bu da olur :)

Öncelikle boş bir dosya yaratarak başlayalım, adı im olsun (mesela 8 MB olsun):
$ dd if=/dev/zero of=im bs=1M count=8
8+0 records in
8+0 records out
8388608 bytes (8.4 MB) copied, 0.0377943 seconds, 222 MB/s

Dosya yaratmak yerine /dev/ram0'da da yapabilirsiniz bu işlemi.

Şimdi dosyamızda file system yaratmaya sıra geldi, ext2 oluşturalım.
$ mkfs.ext2 im
mke2fs 1.40-WIP (14-Nov-2006)
im is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2048 inodes, 8192 blocks
409 blocks (4.99%) reserved for the super user
First data block=1
Maximum filesystem blocks=8388608
1 block group
8192 blocks per group, 8192 fragments per group
2048 inodes per group

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Eveeet dosya sistemimizi de oluşturduktan sonra dosyamızı mount edip (loopback olarak) içine istediğimizi koyup umount edebiliriz. Artık o bir disk imajı. Gzip'leyip initrd olarak da kullanabiliriz.
# mount -o loop im /mnt/x
$ mount
/home/alp/im on /mnt/x type ext2 (rw,loop=/dev/loop/0)

Hiç yorum yok: