Particionando o arquivo de imagem de disco

4

Eu quero particionar uma imagem de disco bruta com os seguintes comandos:

#creating the blank image
$ dd if=/dev/zero of=example.img bs=1M count=50

#write the partition table
$ parted example.img mktable msdos

#creating partition but not the file system
#creating fat32 primary partition 1 to 15 MB
$ parted example.img mkpart p fat32 1 15
#creating ext3 primary partition 16 to end
$ parted example.img mkpart p ext3 16 -0

Estes comandos não criam um sistema de arquivos. Como eu pude fazer isso? Eu estou tentando o comando mkfs em parted mas está mostrando nenhum comando encontrado . Como eu poderia criar o sistema de arquivos externamente?

    
por Shantanu Banerjee 05.11.2012 / 12:51

3 respostas

7

Use o comando kpartx para criar um dispositivo de loopback que possa ser formatado.

kpartx -a /path/to/imagefile.img  # Presents partitions from the image file
mkfs.vfat /dev/mapper/loop0p1   # Format partition 1
mkfs.ext3 /dev/mapper/loop0p2   # Format partition 2
kpartx -d /path/to/imagefile.img  # Unmaps the partitions from the image file

Exemplos de kpartx relacionados aqui

    
por 05.11.2012 / 15:01
3

Versões recentes da opção losetup ganhou -P . Citação de man 8 losetup :

-P, --partscan
          Force the kernel to scan the partition table on a newly created loop device.

Fazer losetup -f my_partitioned.img não cria apenas /dev/loop0 , mas também particiona dispositivos:

$ ls -l /dev/loop0*
brw-rw---- 1 root disk   7, 0 Oct  5 18:43 /dev/loop0
brw-rw---- 1 root disk 259, 0 Oct  5 18:43 /dev/loop0p1
brw-rw---- 1 root disk 259, 1 Oct  5 18:43 /dev/loop0p2
    
por 05.10.2015 / 17:54
1

Com os comandos usuais do mkfs, como mkfs.ext4 . Você precisará usar losetup para associar um dispositivo de loopback ao arquivo, a fim de ter um lugar para apontar o mkfs. Você também pode precisar usar partprobe para reconhecer as partições no dispositivo de loop.

    
por 05.11.2012 / 14:58