Ho bisogno di creare un filesystem con una sola partizione dal nulla (/dev/zero
).
Ho provato questa sequenza di comandi:
dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
n
p
2048
131072
Fondamentalmente, ho bisogno di creare un file immagine da 64 MB pieno di zeri. Quindi uso fdisk
per aggiungere una nuova partizione per il nuovo filesystem (che dovrebbe finalmente essere FAT32), a partire dal settore 2048
e utilizzando tutti i settori rimanenti.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Ma qui sto incontrando problemi. Se ho impostato un loop
dispositivo e formattarlo utilizzando mkfs -t vfat
, la tabella delle partizioni viene sovrascritta e il filesystem (FAT32) viene posizionato su disco. Non ho bisogno dell'intero disco formattato con FAT32, ho solo bisogno che la mia partizione primaria sia così.
Qualcuno sa come posso formattare solo una partizione dell'immagine del disco non elaborato, non l'intera immagine?
Risposta accettata:
Se su Linux, durante il caricamento del loop
modulo, assicurati di passare un max_part
opzione al modulo in modo che i dispositivi di loop siano partizionabili.
Controlla il valore corrente:
cat /sys/module/loop/parameters/max_part
Se è 0:
modprobe -r loop # unload the module
modprobe loop max_part=31
Per rendere persistente questa impostazione, aggiungi la seguente riga a /etc/modprobe.conf
o in un file in /etc/modprobe.d
se quella directory esiste sul tuo sistema:
options loop max_part=31
Se modprobe -r loop
fallisce perché "Il loop del modulo è integrato", dovrai aggiungere loop.max_part=31
alla riga di comando del kernel e riavvia. Se il tuo bootloader è Grub2, aggiungilo al valore di GRUB_CMDLINE_LINUX
in etc/default/grub
.
Ora puoi creare un dispositivo loop partizionabile:
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/
(nota che hai bisogno di una versione relativamente recente di Linux).