Potřebuji vytvořit souborový systém pouze s jedním oddílem z ničeho (/dev/zero
).
Zkoušel jsem tuto sekvenci příkazů:
dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
n
p
2048
131072
V podstatě potřebuji vytvořit 64MB soubor obrázku naplněný nulami. Pak použiji fdisk
přidat nový oddíl pro nový souborový systém (který by měl být konečně FAT32), počínaje sektorem 2048
a pomocí všech zbývajících sektorů.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Ale tady narážím na problémy. Pokud nastavím loop
zařízení a naformátujte jej pomocí mkfs -t vfat
, tabulka oddílů je přepsána a souborový systém (FAT32) je umístěn na disk. Nepotřebuji celý disk naformátovaný na FAT32, stačí mi, aby byl můj primární oddíl takový.
Ví někdo, jak mohu naformátovat pouze jeden oddíl nezpracovaného obrazu disku, ne celý obraz?
Přijatá odpověď:
V systému Linux při načítání loop
modulu, ujistěte se, že předáváte max_part
možnost k modulu, takže smyčková zařízení jsou dělitelná.
Zkontrolujte aktuální hodnotu:
cat /sys/module/loop/parameters/max_part
Pokud je 0:
modprobe -r loop # unload the module
modprobe loop max_part=31
Aby toto nastavení bylo trvalé, přidejte následující řádek do /etc/modprobe.conf
nebo do souboru v /etc/modprobe.d
pokud tento adresář ve vašem systému existuje:
options loop max_part=31
If modprobe -r loop
selže, protože „Modulová smyčka je vestavěná“, budete muset přidat loop.max_part=31
na příkazový řádek jádra a restartujte počítač. Pokud je váš bootloader Grub2, přidejte k němu hodnotu GRUB_CMDLINE_LINUX
v etc/default/grub
.
Nyní můžete vytvořit dělitelné smyčkové zařízení:
truncate -s64M file # no need to fill it with zeros, just make it sparse
fdisk file # create partitions
losetup /dev/loop0 file
mkfs.vfat /dev/loop0p1 # for the first partition.
mount /dev/loop0p1 /mnt/
(Všimněte si, že potřebujete relativně nejnovější verzi Linuxu).