Jika saya membuat image disk dan mengompresnya dengan gzip / xz / etc apakah ada cara untuk memasangnya secara langsung tanpa terlebih dahulu membuka kompres ?
Katakanlah saya sudah menggunakan
sudo dd if=/dev/sdc1 | gzip -9 > image1.dd.gz
bagaimana saya bisa memasang gambar asli, tanpa membuat salinan terkompresi terlebih dahulu?
Atau saya sudah menggunakan
sudo dd if=/dev/sdc | gzip -9 > wholedisk.dd.gz
dan disk memiliki banyak partisi, apakah itu akan membuatnya lebih sulit?
Dengan gambar yang tidak terkompresi dari seluruh disk kemudian menggunakan kpartx
atau versi yang lebih baru losetup
dengan -P
flag itu harus membuat loop untuk setiap partisi.
Tetapi apakah ada cara untuk me-mount / losetup / membaca gambar yang dikompresi?
Jika itu tidak bekerja untuk gzip / xz, adakah metode kompresi yang cocok untuk ini?
Catatan tentang duplikat Q
Duplikat yang disarankan saat ini
- Pasang partisi tunggal dari gambar seluruh disk (perangkat) , sambil menjadi Q bermanfaat yang sangat baik
JANGAN GUNAKAN KOMPRESI , DAN BUKAN DUPLIKAT .
mount
tidak akan memasang gambar terkompresi dengan sendirinya.
sumber
Jawaban:
Anda dapat menggunakannya
squashfs
untuk mengompres gambar disk dan kemudian memasangnya.Buat gambar disk
Jika Anda belum memiliki image disk, gunakan
dd
untuk membuatnya:Kompres gambar dengan squashfs
Pasang
squashfs
:Kompres gambar:
Atau Alirkan kompresi (tidak perlu file dd sementara)
Pujian untuk terminator14 di UbuntuForums.org . Definisi / Penjelasan:
empty-dir
- dir "sumber". Pada dasarnya dalam kasus kami, hanya sebuah dir kosong untuk memenuhi format input arg mksquashfssquash.img
- tujuan dan nama file dari file squashfs keluaransda_backup.img
- nama cadangan dd DI DALAM file squashfsf
- menetapkan bahwa sda_backup.img adalah file biasa (sebagai lawan dari direktori, perangkat blok, atau perangkat char)444
- izin file sda_backup.img di dalam gambar squashfsroot root
- UID dan GID untuk file sda_backup.img di dalam gambar squashfs. Dapat ditentukan dengan angka desimal, atau dengan namadd if=/dev/sda bs=4M
- perintah dd digunakan untuk membaca perangkat yang ingin kita buat cadangannyaPasang gambar
Pertama-tama pasang
squashfs
gambar:Ini akan menampilkan gambar disk yang tidak dikompresi untuk Anda pasang:
Atau jika itu adalah gambar drive penuh (dipartisi) yang dapat Anda gunakan
losetup
untuk melampirkan gambar dd ke perangkat loop (mungkin opsional) dan kemudiankpartx -a
ataupartprobe
untuk menemukan & memisahkan partisi ke perangkat yang terpisah, atau bahkanvgscan
/vgchange -ay
jika ada LVM.sumber
ro,noload
opsi, seperti:mount -o ro,noload /mnt/squash/sda1.img /mnt/sda1
Saya bisa mendapatkan server NBD untuk "melayani" versi yang tidak dikompresi dari file .gz atau .xz. Saya tidak yakin apakah itu harus membaca seluruh file terkompresi sangat sering (hanya diuji sejauh ini dengan file kecil di ram) tetapi setidaknya itu berfungsi tanpa harus mengekstrak seluruh salinan un-kompresi.
Melihat gambar gz / xz Terkompresi dd "on-the-fly"
Instal nbdkit & klien
Buat demo "dd" style file - file 50M kosong dengan sistem file ext & zip (Opsional untuk pengujian saja)
Kemudian kompres dengan gzip atau xz
Catatan:
xz
Pilihan--block-size=16MiB
harus memberikan kinerja akses acak yang lebih baik, tetapi dengan mengorbankan kompresi lebih sedikit (mungkin 1%?). Lihat deskripsi plugin xz nbdkit .Jalankan server pada gambar COMPRESSED
atau untuk xz
The
--no-fork
memberitahu server "Jangan garpu ke latar belakang" sehingga melihat kemungkinan pesan kesalahan & membunuh dengan CTRL-C sedikit lebih mudah.-v
mungkin / akan menampilkan terlalu banyak pesan status, terutama saat membaca.Jalankan klien (di terminal / jendela lain)
The
-nofork
mirip dengan-no-fork
di atas, tapi aku bisa tidak membunuh klien dengan CTRL-C,kill <pid>
atausudo kill <pid>
. Mengakhiri server dengan CTRL-C menghentikan kedua server & klien.Perhatikan bahwa
/dev/nbd0
sekarang identik dengan gambar UN-COMPRESSED/dev/nbd0
sekarang dapat digunakan seperti gambar yang tidak dikompresi; mount, membaca / menyalin dengandd
, atau penggunaankpartx
,partprobe
,vgscan
/vgchange
, dll!Terima kasih kepada Cristian Ciupitu di Unix & Linux , meskipun butuh sedikit lebih banyak penggalian untuk menemukan plugin & membuat semuanya berjalan bersama.
sumber
nbdkit -v --no-fork -i 127.0.0.1 --filter=xz file ~/Downloads/50m.xz
bekerja dengan baik dengan perintah klien yang samanbdkit 1.1.11
menggunakan protokol NBD lama, yang berbeda dari protokol NBD baru, digunakannbd-client 3.13
, tetapi Anda dapat menggunakan versi nbd-klien sebelum 3.10, misalnyanbd-client 3.8 from Ubuntu precise 12.04 old LTS
[gunakan versi lama hanya secara lokal untuk keamanan!]Ini adalah cara saya melakukannya, tidak tahu konsol yang setara dengan ini,
.iso
file denganDisk Image Mounter
.sumber
dd if=/dev/zero
dan file-roller) dan itu benar-benar menambahkan 362k data (iso overhead kurasa). Terima kasih, idenya ada di jalur yang benar