GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come creare un file immagine di partizione formattato da zero?

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).


Linux
  1. Come creare un filesystem su una partizione Linux o un volume logico

  2. Come creare un file ZIP protetto da password in Linux

  3. Come creare uno scambio in Linux

  4. Come creare un file di scambio in Linux

  5. Come creare una Vm da zero con Virsh?

Come fare la steganografia delle immagini su Linux

Come creare un montaggio da immagini in Linux

Come creare directory da un file di testo in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come costruire il kernel Linux da zero

Come creare partizioni del disco su Linux