歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 將現有系統復制到qemu虛擬中

將現有系統復制到qemu虛擬中

日期:2017/2/28 11:10:02   编辑:關於Unix


7.0的ntfs模塊似乎有問題,周末一個下午遇到四次當機,差點把文件系統搞壞,想想也覺得後怕,不應該在自己的工作機上調試內核,只能在虛擬機上建立一個環境了。
不過我懶得在qemu上安裝一個全新的環境,所以就把自己的工作系統復制一份到虛擬中機了 ^^
過程很簡單,qemu-img創建一個虛擬硬盤,然後分區,建立引導區,再把系統復制進去。
你需要一個qemu的虛擬機. 記得加載aio
kldload aio
1.建立一個足夠大的虛擬磁盤(增量):
[jinti@bsd ~/bsd7.dev]$ qemu-img create disk10G.img 10G
Formatting 'disk10G.img', fmt=raw, size=10485760 kB
2.將這個磁盤文件變成memory disk.
[jinti@bsd ~/bsd7.dev]$ sudo mdconfig -a -f disk10G.img -u 0
3.將這個磁盤分區,因為是虛擬機,所以可以把整個磁盤給BSD.
# 切記,是md0,不是ad....不然就大麻煩了。
[jinti@bsd ~/bsd7.dev]$ sudo fdisk -I /dev/md0
******* Working on device /dev/md0 *******
fdisk: invalid fdisk partition table found
fdisk: Geom not found: "md0"
4.為分區建立基本的freebsd分區
#先用bsdlabel自動分區
[jinti@bsd ~/bsd7.dev]$ sudo bsdlabel -w /dev/md0s1 auto
#然後再手工編輯分區,默認會用vi編輯(根據你的EDITOR設定)
[jinti@bsd ~/bsd7.dev]$ sudo bsdlabel -e /dev/md0s1
#看我的分區結構:
# /dev/md0s1:
3 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 9G 16 4.2BSD
b: 1G * swap
c: * * unused
~
保存退出之後,會有提示:
partition b: partition extends past end of unit
re-edit the label? [y]: n
5.OK,分區已經建立完,可以建立文件系統了.
[jinti@bsd ~/bsd7.dev]$ sudo newfs /dev/md0s1a
6.為主分區建立boot程序,也為新的磁盤建立引導程序
[jinti@bsd ~/bsd7.dev]$ sudo bsdlabel -B -w /dev/md0s1
[jinti@bsd ~/bsd7.dev]$ sudo fdisk -B /dev/md0
7.現在的md0s1已經是可以用了。現在要做的就是把現有的系統復制進去。
[jinti@bsd ~/bsd7.dev]$ sudo mount /dev/md0s1a vdisk
[jinti@bsd ~/bsd7.dev]$ sudo cp -Rf /boot vdisk
把/bin,/boot,/dev,/etc,/lib,/usr,/proc,/root,/sbin,/var都復制到vdisk中,這樣就完成了。
記得把vdisk/etc下的fstab的磁盤改成/dev/ad0, 不然就無法啟動。
8.把文件umount,測試一下
[jinti@bsd ~/bsd7.dev]$ sudo umount /dev/md0s1a
[jinti@bsd ~/bsd7.dev]$ qemu -localtime -m 256 -hda disk10G.img -boot c
最後,記得把md0給刪除了。
[jinti@bsd ~/bsd7.dev]$ sudo mdconfig -d -u 0
其實沒有復雜的東西,看來mdconfig不僅僅可以做cache,還可以幫我們做很多事情。
Copyright © Linux教程網 All Rights Reserved