Bagaimana saya bisa menghapus cadangan sistem file menjadi image disk VM?

0

Saya telah menyediakan .tar.gzarsip yang berisi file-file dari sistem file VM (tapi bukan sistem file itu sendiri) dan saya perlu menguraikan ini menjadi gambar disk mentah sehingga saya dapat me-mount mereka sebagai VM.

Bagaimana cara membuat disk image kosong dan meletakkan filesystem di atasnya, lalu untar arsip ke dalamnya?

Saya kira saya kemudian perlu menginstal bootloader dan membuat partisi swap juga.

Aethylred
sumber

Jawaban:

0

Anda belum menentukan bahwa arsip tersebut berasal dari mana sistem file Virtual Machine. Jika Anda bekerja pada VMWare Workstation, cukup tambahkan disk baru dari antarmuka, boot mesin dengan bootloader apa pun, salin file tar di dalamnya menggunakan ftp s / w lalu lepaskan. Jika itu adalah tar yang tepat dari mesin virtual yang sedang berjalan, maka mesin Anda akan boot lain kali bahkan tanpa bootloader.

Manoj Agarwal
sumber
File-file tersebut berasal dari lingkungan VM asing, mungkin Xen, dan akan masuk ke hypervisor KVM, karenanya menggunakan gambar disk mentah. Saya pikir saya punya solusi, saya akan mencoba besok.
Aethylred
0

Ini lebih merupakan strategi daripada manual yang sempurna, tetapi harus membantu.

Bangun "komputer virtual" Anda, yaitu buat hard disk kosong. Kemudian, dari sudut pandang saya, ini adalah opsi terbaik untuk mengetahui distribusi Linux di dalam file .tar.gz Anda. Bayangkan itu adalah sistem openSUSE, versi 12.1 (harus bekerja dengan distribusi lain dengan cara yang sama). Unduh image disk asli (CD) untuk mengatur sistem dasar distribusi Anda dalam versi yang tepat dan instal ke VM Anda yang baru dibuat. Jadi Anda dapat membuat sistem file dan partisi (termasuk swap), instal grub atau sejenisnya, dan uji VM. Setelah ini selesai, boot ke VM Anda dengan sistem kehidupan Linux. Buka "/" - folder VM Anda (bukan sistem kehidupan) dan ganti nama sejumlah folder (sebagai root): bin, boot, dll, lib, opt, root, sbin, srv, tr, usr, var (dengan asumsi tidak ada yang berada di partisi terpisah) menjadi sesuatu seperti bin-old, boot-old ... Sekarang undar VM lama Anda ke lokasi yang sama. Seharusnya ada folder boot, bin ... baru di sebelah yang lama namanya diganti. Sekarang Anda perlu mengubah beberapa file VM lama Anda untuk boot ke sistem lama di dalam VM baru. Dengan asumsi VM lama menggunakan grub, Anda misalnya perlu menyesuaikan file di / boot, saat menggunakan / boot-lama sebagai bantuan.

sme
sumber
0

Pertama-tama saya membuat perangkat loopback ( /dev/loop0) yang dibuat dari gambar disk mentah kosong 25GB dan mempartisinya menjadi partisi 20GB untuk sistem file dan sisanya untuk swap.

Ingatlah untuk menggunakan kpartxperangkat loopback untuk 'menemukan' partisi baru:

    # kpartx -a /dev/loop0
    # ls /dev/mapper/
    control  loop0p1  loop0p2

Saya tidak yakin sistem file mana yang digunakan, jadi saya secara konservatif memilih untuk membuat ext2sistem file pada partisi pertama:

    # mkfs.ext2 /dev/mapper/loop0p1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    1313760 inodes, 5245214 blocks
    262260 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    161 block groups
    32768 blocks per group, 32768 fragments per group
    8160 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000

    Writing inode tables: done
    Writing superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 23 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.

Buat titik pemasangan dan pasang partisi perangkat loopback:

    # mkdir /mnt/disk
    # mount /dev/mapper/loop0p1 /mnt/disk

Ubah ke direktori pemasangan dan hapus arsip:

    # cd /mnt/disk
    # tar xzvf /path/to/disk_archive.tar.gz

Gunakan chrootuntuk memasang image disk baru sebagai sistem file root:

    # mount -t proc none /mnt/disk/proc
    # mount -o bind /dev /mnt/disk/dev
    # chroot /mnt/disk /bin/bash

Buat perubahan yang diperlukan pada sistem file (seperti menginstal paket grub!)

Keluar dari chroot dan unmount dan buka semua:

   # umount /mnt/disk/dev
   # umount /mnt/disk/proc
   # umount /mnt/disk
   # kpartx -d /dev/loop0
   # losetup -d /dev/loop0

Akhirnya saya membuat VM dengan ini sebagai hard drive-nya. Saya menggunakan Super Grub2 Disk untuk menyelesaikan masalah lebih lanjut dengan bootloader.

Aethylred
sumber
Beberapa keterlambatan dalam hal ini sementara saya banyak tentang cara menginstal paket grub, tanpa jaringan, dan harus membangun kembali lokasi dpkg dll.
Aethylred