Saya perlu membuat sistem file hanya dengan satu partisi dari nol (/dev/zero
).
Saya mencoba urutan perintah ini:
dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
n
p
2048
131072
Pada dasarnya, saya perlu membuat file gambar 64MB yang diisi dengan nol. Kemudian saya menggunakan fdisk
untuk menambahkan partisi baru untuk sistem file baru (yang akhirnya harus FAT32), mulai dari sektor 2048
dan menggunakan semua sektor yang tersisa.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Tapi di sini saya menemukan masalah. Jika saya menyiapkan loop
perangkat dan format menggunakan mkfs -t vfat
, tabel partisi ditimpa dan sistem file (FAT32) ditempatkan ke disk. Saya tidak perlu seluruh disk diformat dengan FAT32, saya hanya perlu partisi utama saya.
Adakah yang tahu bagaimana saya bisa memformat hanya satu partisi gambar disk mentah, bukan seluruh gambar?
Jawaban yang Diterima:
Jika di Linux, saat memuat loop
modul, pastikan Anda melewati max_part
pilihan ke modul sehingga perangkat loop dapat dipartisi.
Periksa nilai saat ini:
cat /sys/module/loop/parameters/max_part
Jika 0:
modprobe -r loop # unload the module
modprobe loop max_part=31
Untuk membuat pengaturan ini tetap, tambahkan baris berikut ke /etc/modprobe.conf
atau ke file di /etc/modprobe.d
jika direktori itu ada di sistem Anda:
options loop max_part=31
Jika modprobe -r loop
gagal karena “Modul loop sudah terpasang”, Anda harus menambahkan loop.max_part=31
ke baris perintah kernel Anda dan reboot. Jika bootloader Anda adalah Grub2, tambahkan ke nilai GRUB_CMDLINE_LINUX
di etc/default/grub
.
Sekarang, Anda dapat membuat perangkat loop yang dapat dipartisi:
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/
(perhatikan bahwa Anda memerlukan versi Linux yang relatif baru).