热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将已存在的系统复制到qemu虚拟机中

将现有系统复制到qemu虚拟中7.0的ntfs模块似乎有问题,周末一个下午遇到四次当机,差点把文件系统搞坏,想想也觉得后怕,不应该在自己的工作机上调试内核,只能在虚拟机上建立一个环境了。不过我懒得在qemu上安装一个全新的环境,所以就把自己的工作系统复
将现有系统复制到qemu虚拟中

7.0的ntfs模块似乎有问题,周末一个下午遇到四次当机,差点把文件系统搞坏,想想也觉得后怕,不应该在自己的工作机上调试内核,只能在虚拟机上建立一个环境了。

不过我懒得在qemu上安装一个全新的环境,所以就把自己的工作系统复制一份到虚拟中机了 ^^

过程很简单,qemu-img创建一个虚拟硬盘,然后分区,建立引导区,再把系统复制进去。

你需要一个qemu的虚拟机. 记得加载aio

kldload aio

1.建立一个足够大的虚拟磁盘(增量):

$ qemu-img create disk10G.img 10G
Formatting 'disk10G.img', fmt=raw, size=10485760 kB

2.将这个磁盘文件变成memory disk.
$ sudo mdconfig -a -f disk10G.img -u 0

3.将这个磁盘分区,因为是虚拟机,所以可以把整个磁盘给BSD.
# 切记,是md0,不是ad....不然就大麻烦了。

$ sudo fdisk -I /dev/md0
******* Working on device /dev/md0 *******
fdisk: invalid fdisk partition table found
fdisk: Geom not found: "md0"

4.为分区建立基本的freebsd分区
#先用bsdlabel自动分区
$ sudo bsdlabel -w??/dev/md0s1 auto

#然后再手工编辑分区,默认会用vi编辑(根据你的EDITOR设定)
$ sudo bsdlabel??-e /dev/md0s1

#看我的分区结构:

# /dev/md0s1:
3 partitions:
#? ?? ???size? ?offset? ? fstype? ?
??a:? ???9G? ?? ? 16? ?? ?4.2BSD? ?? ?? ?? ?
??b:? ???1G? ?? ? *? ?? ???swap? ?? ?? ?
??c:? ???*? ?? ?? ? *? ?? ???unused
"
保存退出之后,会有提示:

partition b: partition extends past end of unit
re-edit the label? : n

5.OK,分区已经建立完,可以建立文件系统了.

$ sudo newfs /dev/md0s1a

6.为主分区建立boot程序,也为新的磁盘建立引导程序

$ sudo bsdlabel -B -w /dev/md0s1
$ sudo fdisk -B /dev/md0

7.现在的md0s1已经是可以用了。现在要做的就是把现有的系统复制进去。

$ sudo mount /dev/md0s1a vdisk
$ sudo cp -Rf /boot vdisk
把/bin,/boot,/dev,/etc,/lib,/usr,/proc,/root,/sbin,/var都复制到vdisk中,这样就完成了。

记得把vdisk/etc下的fstab的磁盘改成/dev/ad0, 不然就无法启动。

8.把文件umount,测试一下
$ sudo umount /dev/md0s1a
$ qemu -localtime -m 256??-hda disk10G.img -boot c

最后,记得把md0给删除了。

$ sudo mdconfig -d -u 0

其实没有复杂的东西,看来mdconfig不仅仅可以做cache,还可以帮我们做很多事情。


推荐阅读
  • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
  • 解决Win10系统显示模糊问题的方法
    Windows 10作为一款深受用户喜爱的操作系统,提供了丰富的个性化设置选项,让每位用户都能根据个人偏好定制系统界面。然而,在进行个性化设置的过程中,有时会出现显示模糊的情况,影响用户体验。本文将详细介绍如何有效解决Win10系统显示模糊的问题。 ... [详细]
  • 拨打电话时遇到‘正在通话’或无人接听的情况解析及解决方法
    当您尝试联系他人时,可能会遇到电话提示‘正在通话’或是虽然接通但无人应答的情况。本文将详细解释可能的原因,并提供相应的解决策略。 ... [详细]
  • 本文详细介绍了在Windows系统中如何配置Nginx以实现高效的缓存加速功能,包括关键的配置文件设置和示例代码。 ... [详细]
  • 如何在PyCharm中配置Python脚本的默认模板
    本文介绍如何在PyCharm中设置Python脚本的默认模板,以便每次创建新的.py文件时自动填充预设内容,提高开发效率。 ... [详细]
  • 当需要确保对象的状态在创建后不可更改时,使用记录(Record)类型是一个理想的选择。本文探讨了如何通过记录类型实现对象的不可变性,并提供了一个简单的示例来说明其用法。 ... [详细]
  • 本文详细介绍了FLV播放器的构建过程,包括如何解析FLV标签并将这些标签传递给解码器,以及如何在Qt环境中注册共享指针的信号和槽机制。 ... [详细]
  • 团支部的概念及其职能
    本文详细介绍了团支部的基本概念、组织结构以及其在共青团体系中的重要职能。 ... [详细]
  • 在开发一个网页音乐播放器时遇到问题,需要从不同源读取MP3文件的ID3标签信息,包括流派、歌手和歌曲名称等。尝试使用PHP未果后转而考虑使用JavaScript进行跨域读取,但不清楚具体配置方法,寻求技术指导。 ... [详细]
  • 探索《冯诺依曼传》:天才与时代的交响
    本文深入探讨了《冯诺依曼传》,通过分析这位20世纪杰出科学家的生平,揭示其对现代科技及理论科学的深远影响。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 随着市场需求的增长,各行业对兼职人员的需求日益增加。无论是本地生活服务还是专业技能提供,兼职APP成为了连接供需双方的重要桥梁,有效地提升了信息透明度和服务效率。 ... [详细]
author-avatar
c颖c颖漂亮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有