Partíciók és fájlrendszerek image fileban

Goosfrabaa küldte be sze, 2012-11-21 12:32 időpontban

Előfodulhat, hogy virtuális lemezképeket kell használnunk. A disk imagek ugyanúgy tartalmazhatnak partíciókat és benne fájlrendszereket, mintha különálló fizikai eszközök lennének (pl merevlemez).

  • Üres image létrehozása
    Két lehetőség is van. Az egyik a klasszikus dd, a másik a fallocate (multipath-tools csomag része szokott lenni) parancs használata. A példában 500MB-os virtuális lemezképet hozunk létre (feltöltve ASCII 0 karakterekkel):
    dd if=/dev/zero of=/tmp/lemezkep.img bs=100M count=5
    vagy
    fallocate -l 500M /tmp/lemezkep.img
  • Image particionálása
    Ha nincs szükség több particióra, akkor akár már lehetne is formattálni az imaget (pl) az
    mkfs.ext4. -F /tmp/lemezkep.img paranccsal. Mi azonban két külön partíciót hozunk létre a továbbiakban.

    Először az image fáj tartalmát blokkos eszközként (mint egy merevlemez pl) tesszük elérhetővé az oprendszer számára. A parancs ebben a formában kiírja azt is, hogy mi lett a blokkos eszköz neve (nálam /dev/loop1 lett, ezért ezt használom a továbbiakban):
    losetup -f --show /tmp/lemezkep.img

    Majd particionálunk (csak a lényeges sorokat mutatva):
    fdisk /dev/loop1

    Parancs (m = súgó): n
    Select (default p): p
    Partíciószám (1-4, alapértelmezetten 1): 1
    Első sector (2048-1023999, alapértelmezetten 2048):[Enter]
    Utolsó sector, +sectors vagy +size{K,M,G} (2048-1023999, alapértelmezetten 1023999): +300M

    Parancs (m = súgó): n
    Partition type:
    Select (default p): p
    Partíciószám (1-4, alapértelmezetten 2): 2
    Első sector (616448-1023999, alapértelmezetten 616448): [Enter]
    Utolsó sector, +sectors vagy +size{K,M,G} (616448-1023999, alapértelmezetten 1023999): [Enter]

    Parancs (m = súgó): p
    /dev/loop1p1 2048 616447 307200 83 Linux
    /dev/loop1p2 616448 1023999 203776 83 Linux

    Parancs (m = súgó): w
    A partíciós tábla módosítva!

    Azaz egy 300MB-os és egy 200MB-os Linuxos partíciót hoztunk létre az imagen belül

  • Particiók formattálása
    Ahhoz, hogy fájlrendszerrel "töltsük fel" a partíciókat, először valahogy elérhetővé (a fájlrendszer számára megnevezhetővé) kell tenni azokat. A kpartx (multipath-tools csomag része) parancs oldja meg egyszerűen ezt a problémát:
    kpartx -a /dev/loop1

    Ha mindent jól csináltunk, akkor a lemezképünkben található két partíció elérhetővé válik a /dev/mapper/ könyvtár alatt, szimpla blokkos eszközként:
    [root@gep ~]# ls -1 /dev/mapper/
    control
    loop1p1
    loop1p2

    A formattálás innentől már egyszerűen megoldható:
    mkfs.ext4 /dev/mapper/loop1p1
    mkfs.ext4 /dev/mapper/loop1p2

  • Partíciók csatolása
    A formattált partíciók csatolása sem ördöngősség ezek után:
    mount /dev/mapper/loop1p1 /mnt/
  • Partició és virtuális blokkos eszközök leválasztása
    Amennyiben elhelyeztük állományainkat a partición, le kell azt választani.
    umount /mnt/
    kpartx -d /dev/loop1
    losetup -d /dev/loop1