Saya perlu membuat filesystem hanya dengan satu partisi dari nothing ( /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 diisi dengan nol. Kemudian saya gunakan fdisk
untuk menambahkan partisi baru untuk sistem file baru (yang akhirnya harus menjadi 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 memukul masalah. Jika saya mengatur loop
perangkat dan memformatnya menggunakan mkfs -t vfat
, tabel partisi ditimpa dan filesystem (FAT32) ditempatkan ke disk. Saya tidak perlu seluruh disk diformat dengan FAT32, saya hanya perlu partisi primer saya jadi.
Adakah yang tahu bagaimana saya bisa memformat hanya satu partisi gambar disk mentah, bukan seluruh gambar?
linux
partition
loop-device
pengguna35443
sumber
sumber
mkfs
panggilan Anda. Saya harus membaca posting Anda 3 kali untuk memahami masalah Anda. Meskipun saya tidak dapat membantu Anda, saya tertarik mengapa Anda membuat file gambar (!) Tetapi masih ingin meninggalkan "sektor" pertama yang tidak digunakan.loop
itu modul atau dibangun ke dalam kernel), jadi saya pikir ini berguna untuk setiap situs untuk memiliki versi pertanyaannya dan saya memilih untuk membuka kembali.Jawaban:
Jika di Linux, saat memuat
loop
modul, pastikan Anda meneruskanmax_part
opsi ke modul sehingga perangkat loop dapat dipartisi.Periksa nilai saat ini:
Jika 0:
Untuk membuat pengaturan ini tetap ada, tambahkan baris berikut ke
/etc/modprobe.conf
atau ke file/etc/modprobe.d
jika direktori itu ada di sistem Anda:Jika
modprobe -r loop
gagal karena “Modul loop dibangun”, Anda harus menambahkanloop.max_part=31
ke baris perintah kernel dan reboot. Jika bootloader Anda adalah Grub2, tambahkan ke nilaiGRUB_CMDLINE_LINUX
inetc/default/grub
.Sekarang, Anda dapat membuat perangkat loop dipartisi:
(perhatikan bahwa Anda memerlukan versi Linux yang relatif baru).
sumber
loop.max_part=31
ke baris perintah kernelloop.maxpart=31
atauloop.max_part=31
pada baris perintah kernel?losetup /dev/loop0 file -o 1048576 --sizelimit limit
Offset yang ditentukan harus dalam byte (1048576 = 2048 sektor * 512 byte per sektor).
mount -o loop,offset=1048576,sizelimit=limit
Untuk informasi lebih lanjut, lihat losetup dan mount .
sumber
Prosedur berikut memungkinkan Anda untuk memasang partisi gambar untuk memodifikasinya.
losetup 2.21 -P opsi
Membuat satu
/dev/loopXpY
per partisi.Keuntungan: executable pra-instal di banyak distro (paket util-linux).
Kerugian: opsi yang sangat baru, tidak ada di Ubuntu 14.04.
losetup -P
otomatisasiPemakaian:
Sumber:
kpartx
Keluaran:
di mana
loop0p1
partisi pertama, jadi kita bisa melakukan:Keuntungan dari metode ini: bekerja di Ubuntu 14.04 tanpa me-reboot.
sumber