GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat file gambar partisi yang diformat dari awal?

Kalau di Linux, saat memuat loop modul, pastikan Anda memberikan max_part 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 persisten, 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 “Module 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).


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 lostup dan mount.


Prosedur berikut memungkinkan Anda memasang partisi image untuk memodifikasinya.

losetup 2.21 -P opsi

losetup -P -f --show my.img

Membuat satu /dev/loopXpY per partisi.

Keuntungan:executable pra-instal di banyak distro (paket util-linux).

Kerugian:opsi yang cukup baru, tidak ada di Ubuntu 14.04.

losetup -P otomatisasi

Penggunaan:

$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2

$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there

$ sudo losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                                                                      DIO
/dev/loop1         0      0         0  0 /full/path/to/my.img

$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0

Sumber:

los() (
  img="$1"
  dev="$(sudo losetup --show -f -P "$img")"
  echo "$dev"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    echo "$dst"
    sudo mkdir -p "$dst"
    sudo mount "$part" "$dst"
  done
)
losd() (
  dev="/dev/loop$1"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    sudo umount "$dst"
  done
  sudo losetup -d "$dev"
)

kpartx

sudo apt-get install kpartx
losetup -fs my.raw
sudo kpartx -a my.img
ls /dev/mapper

Keluaran:

/dev/mapper/loop0
/dev/mapper/loop0p1

di mana loop0p1 adalah partisi pertama, jadi kita bisa melakukan:

mkdir -p d
sudo mount /dev/mapper/loop0p1 d

Keuntungan dari metode ini:bekerja di Ubuntu 14.04 tanpa me-reboot.


Linux
  1. Cara Membuat Swap di Linux

  2. Linux – Bagaimana Cara Membuat File Gambar Partisi Terformat Dari Awal?

  3. Bagaimana Cara Membuat Vm Dari Awal Dengan Virsh?

  1. Bagaimana Cara Membuat File .img Dari .iso Di Ubuntu?

  2. Cara membuat gambar khusus dari wadah Docker

  3. Cara Menginstal File dmg di Mac dari Command Line

  1. Cara membuat file swap di Linux

  2. Bagaimana install -c berbeda dari cp

  3. Bagaimana cara membuat file dengan ukuran tertentu dari baris perintah?