primeiro, eu crio uma imagem de disco usando dd
:
> dd if=/dev/zero of=disk bs=512 count=2097152
> du -h disk
1.1G disk
segundo, fdisk disk
cria uma partion:
Command (m for help): p
Disk disk: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x40c73f2f
Device Boot Start End Blocks Id System
disk1 2048 2097151 1047552 83 Linux
bloqueia a coluna: 1047552, então os setores são: 1024 (o fdisk pode definir o tamanho do setor?).
terceiro, losetup
:
losetup /dev/loop0 -o 2097152 --sizelimit=1072693248 disk
2048 * 1024 = 2097152 1047552 * 1024 = 1072693248.
neste momento, o tamanho do disco é 1G:
> du -h disk
1.1G disk
adiante, mkfs.ext2
:
> mkfs.ext2 /dev/loop0
mke2fs 1.42.8 (20-Jun-2013)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65408 inodes, 261632 blocks
13081 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
e o tamanho da imagem do disco é reduzido:
> du -h disk
19M disk
Você sabe que o tamanho do bloco do sistema de arquivos é 4096 e tem 8 grupos de blocos, 32768 blocos por grupo.
4096 * 8 * 32768 = 1G.