GNU/Linux >> Belajar Linux >  >> Linux

Memasang beberapa file img sebagai perangkat loop tunggal

Saya rasa Anda tidak dapat melakukannya di tempat tetapi jika Anda memiliki cukup ruang, ini akan berfungsi:

# Create the files that will hold your data
dd if=/dev/zero of=part-00 bs=1M count=4k
dd if=/dev/zero of=part-01 bs=1M count=4k

# Create the loop devices
losetup /dev/loop0 part-00
losetup /dev/loop1 part-01

# Create a RAID array
mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1

# Copy the original filesystem
dd if=original-file-00 of=/dev/md0 bs=512
# Look at the records written value
dd if=original-file-01 of=/dev/md0 bs=512 seek=<sum of records written values so far>

# Mount the new filesystem
mount /dev/md0 /mnt

Anda tidak bisa begitu saja membuat array RAID dari file asli karena disk RAID memiliki header khusus tempat menyimpan jumlah disk, level RAID, dll. Jika Anda melakukannya, bagian dari file asli Anda akan ditimpa.

Anda dapat menggunakan mdadm --build untuk membuat array tanpa metadata tetapi Anda harus membuat cadangan terlebih dahulu. Atau jika mount read-only sudah cukup:

losetup -r /dev/loop0 original-00
losetup -r /dev/loop1 original-11
mdadm --build /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
mount /dev/md0 /mnt

Mengapa Anda ingin melakukan ini? Jika sistem file Anda tidak dapat menangani file>4GB, Anda sebaiknya beralih ke file yang waras.


Untuk memasang image disk terpisah (atau image partisi), Anda harus menggunakan affuse dari afftools yang saat ini dipertahankan di sini:https://github.com/sshock/AFFLIBv3

Jadi, jika Anda memiliki file, pisahkan menjadi beberapa subfile test_img.000, test_img.001, test_img.002, test_img.003, test_img.004, test_img.005, test_img.006, test_img.007, test_img.008, test_img.009

lalu Anda dapat bergabung dengan mereka secara virtual dengan affuse

# affuse test_img.000 /mnt/combine
# ls -lh /mnt/combine
total 0
-r--r--r-- 1 root root 2.0G 1969-12-31 16:00 test_img.000.raw

(ini menggabungkan semua file bersama dimulai dengan file 000, lalu 001, 002, …)

Dan kemudian pasang gambar

mount -o ro,loop,offset=329043456 /mnt/combine/test_img.000.raw /mnt/test

Penggunaannya dijelaskan di sini dan beberapa contoh di sini. Halaman manual juga tersedia setelah kompilasi dan pemasangan, atau di sini.

PS:Bagi saya affuse hanya bekerja jika file split memiliki ukuran kelipatan 512 byte.


Linux
  1. Impor Beberapa File SQL Di MySQL

  2. Cara Membuat Zip Banyak File di Linux

  3. Bagaimana Cara Mengganti Nama Banyak File Dalam Satu Perintah Atau Skrip Di Unix??

  1. Dd:Beberapa File Input?

  2. Cara membuat perangkat blok virtual (perangkat loop/sistem file) di Linux

  3. Perangkat loop permanen?

  1. Memecah gambar dd menjadi beberapa file

  2. Apa itu perangkat loop saat memasang?

  3. Bagaimana cara mengganti nama banyak file dalam satu perintah atau skrip di Unix?