根据阿里提供的下载连接,建议用迅雷进行下载。下载后解压获得raw格式文件。
将raw格式转换位虚拟机磁盘文件,raw虚拟机文件转换为vmdk虚拟机文件.
需要用到 qemu-img,下载地址:
https://www.qemu.org/download/
选择需要的版本
本地为Windows操作系统
按以下步骤安装qemu-img并转换镜像文件格式:
下载qemu-img并完成安装。本示例安装路径为C:\Program Files\qemu。
为qemu-img配置环境变量:
选择开始 开始 > 计算机,右键单击属性。
在左侧导航栏里,单击高级系统设置。
在系统属性对话框里,单击高级页签,并单击环境变量。
image
在环境变量对话框里,在系统变量部分找到Path,并单击编辑。如果Path变量不存在,单击新建。
image
添加系统变量值:
如果是编辑系统变量,在变量值里,添加C:\Program Files\qemu,不同的变量值之间以半角分号(;)分隔。
image
如果是新建系统变量,在变量名处输入Path,在变量值处输入C:\Program Files\qemu。
image
测试是否成功配置环境变量:打开Windows命令提示符,运行qemu-img --help,如果显示正常即表示已配置环境变量。
在命令提示符里,使用cd [源镜像文件所在的目录]切换文件目录,例如cd D:\ConvertImage。
运行qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw命令转换镜像文件格式,其中:
-f的参数值为源镜像文件的格式。
-O(必须是大写)的参数值为目标镜像格式 、源镜像文件名称和目标文件名称。
转换完成后,目标文件会出现在源镜像文件所在的目录下。
本地为Linux操作系统
按以下步骤安装qemu-img并转换镜像文件格式:
安装qemu-img,示例如下:
如果本地为Ubuntu操作系统,运行apt-get install qemu-utils。
如果本地为CentOS操作系统,运行yum install qemu-img。
运行qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw命令转换镜像文件格式,其中:
-f 的参数值为源镜像文件的格式。
-O(必须是大写)的参数值为目标镜像格式 、源镜像文件名称和目标文件名称。转换完成后,目标文件会出现在源镜像文件所在的目录下。
常见问题
安装qemu-img报错,且没有明确提示缺少哪些依赖库,怎么办?
您可以根据cloud-init的requirements.txt文件里显示的库,并运行pip install -r requirements.txt安装所有依赖库。
Ubuntu上安装qemu-utils时,出现Unable to locate package qemu-utils错误,怎么办?
运行以下命令安装qemu-img工具:
apt-get update #更新包列表
apt-get install qemu-utils #安装qemu-img工具
修改Windows环境变量不重启就生效的方法
在“我的电脑”->“属性”->“高级”->“环境变量”中增加或修改环境变量后,需重启系统才能使之生效。有没有什么方法可让它即时生效呢?下面介绍一种方法:
修改完成后,进入cmd命令提示符,输入:set PATH=C: ,关闭cmd窗口。再次打开cmd窗口,输入:echo %PATH%,可以发现“我的电脑”->“属性”->“高级”->“环境变量”中设置的 PATH 值已经生效。
总结:”输入:set PATH=C: ,关闭cmd窗口。再次打开cmd窗口,输入:echo %PATH% “估计在这个过程系统会重新读取path的配置文件,所以会起效。
作者:一只刚刚开始吃猫粮的运维狗
链接:https://www.jianshu.com/p/4743e6d125bf
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
raw为最原始的虚拟机镜像文件,vmdk是vmware的虚拟机镜像文件,如果要查看raw文件中的内容可以先把raw文件转换为vmdk文件,然后再用vmware虚拟机打开vmdk文件。
raw文件转化为vmdk文件需要qemu-img命令(对应有Windows和Linx版本)
qemu-img convert -f raw xxxx.raw -O vmdk xxxx.vmdk
一般情况下为 linux Centos7 ,新建虚拟机。
1、获取阿里云镜像
2、使用qemu-img工具将raw文件转换成.vmdk文件,这一步看你的镜像的大小和电脑的配置情况,一般需要20多分钟才能完成
转换命令是:
qemu-img convert -f raw 1.raw -O vmdk 1.vmdk
这样我们就可以得到一个..vmdk文件了,接下来就是创建虚拟机了
3、创建虚拟机(不多说,直接上图)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191218165941779.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25tZ3doamw=,size_16,color_FFFFFF,t_70)
接下来就是傻瓜式操作,一路下一步到下面这一步
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191218170005320.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25tZ3doamw=,size_16,color_FFFFFF,t_70)
一定要选择“使用现有虚拟磁盘”,接着下一步选择转换之后的镜像文件,OK,虚拟机搞定
搞定,接下来点击运行虚拟机就可以了
作者:pandali1992
链接:https://www.jianshu.com/p/4be84dc68290
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
问题:
复制代码
error: file ‘/grub/i386-pc/normal.mod’ not found.
grub rescue>
我该怎么办我只是坐下来盯着它。
我找到了我的旧上网本( 戴尔 Inspiron 1010 ) 我没有用过四年。 我用 Ubuntu 12.10替换了 Windows XP。 我使用了我的u盘。 已经安装并重新启动我得到了 normal.mod 没有找到的消息。
我该怎么办键入 exit,reboot 或者 quit? 我应该安装?
回答 1:
Grub有一个在引导时加载的小核心映像。 核心映像动态加载提供进一步功能的模块。 i386-pc/normal.mod not found 表示grub不能加载 normal.mod,这是一个提供正常命令的grub模块。 要加载 normal.mod,你需要告诉grub它在哪里。 要做到这一点,你可以使用grub命令行( 又名救援控制台)。 Grub将启动命令行,如果有问题,可以手动启动shift键,当Grub启动( 强制显示Grub菜单) 时,然后按’c’键。
使用 grub,你可以浏览驱动器。分区和文件系统。 你需要:
使用 ls 或者 search.file 找到grub安装。
设置grub变量 $prefix 和 $root
加载并运行正常模块
例子
下面是一个示例。 你需要将它调整到本地驱动器和分区设置。
normal.mod? 在一些可能的位置
复制代码
grub> search.file/i386-pc/normal.mod
error: no such device:/i386-pc/normal.mod
grub> search.file/grub/i386-pc/normal.mod
error: no such device:/grub/i386-pc/normal.mod
grub> search.file/boot/grub/i386-pc/normal.mod
hd0,msdos1
如果你得到 “Unknown command’search.file’”,这意味着 search.file 命令不可用。 这可能是因为你位于 grub rescue> 提示符,而不是 grub> 提示符。 这种情况下,你仍然可以继续并使用 ls 命令和你对分区布局的知识来查找 normal.mod。
在( hd0,msdos1 ) 找到了英镑
复制代码
grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod
为什么grub找不到它?
检查 $prefix - grub目录的绝对位置
( 这是在grub安装grub时设置的)
复制代码
grub> echo $prefix
(hd0,msdos2)/boot/grub
检查 $root - 不包括设备的路径的缺省设备
grub最初将这里设置设置为来自 $prefix的设备
复制代码
grub> echo $root
hd0,msdos2
root 和前缀指向错误的分区( hd0,msdos2 )
向分区中添加 $root 和 $prefix,我们找到了 normal.mod ( hd0,msdos1 )的分区
复制代码
grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub
加载和运行正常模块
复制代码
grub> insmod normal
grub> normal
其他可能有用的命令
1 所有设备和分区( )
复制代码
grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)
分区
复制代码
grub> ls (hd0,msdos1)
Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib
文件系统 ( 注释/在结尾处)
复制代码
grub> ls (hd0,msdos1)/
lost+found/etc/media/bin/boot/dev/home/lib/lib64/mnt/opt/proc/
root/run/sbin/srv/sys/tmp/usr/var/vmlinuz initrd.img cdrom/
inside/boot/grub
存在i386-pc目录意味着这是一个BIOS安装
存在x86_64-efi目录将指示EFI安装
复制代码
grub> ls (hd0,msdos1)/boot/grub
i386-pc/locale/fonts/grubenv grub.cfg
GRUB手册:故障排除:GRUB提供了一个 rescue shell,覆盖上面描述的基本恢复方法
有关可用的命令和变量,请参见 Grub手册: 命令行和菜单条目命令和特殊 环境变量 列表。
如果无法正确识别 search 或者 search.file 命令,则可能加载其他缺少的模块,如正确地设置 $prefix,然后执行 insmod search,以便执行 lsinsmod ls 等等 find/boot/grub -name *.mod 在一个工作的Linux安装上,查看所有动态加载的Grub模块。
你总是可以从外部媒体启动,安装 Grub。
回答 2:
今天下午在一台机器上解决了这个问题。 看起来这个问题的一个原因是安装程序认为你有EFI安全引导,当你没有,因此装载不正确的GRUB文件。
你需要做的是安装 GRUB 2. 为此,需要引导到活动实例,挂载 root 分区并安装。
从活动实例中找到加载 root 分区的分区。 GParted会告诉你这个,或者你也可以
sudo fdisk -l
前往安装ubuntu的分区。
一旦你有了分区,你需要挂载它。 假设 root 分区位于/dev/sda5, 上,即:
sudo mount/dev/sda5/mnt
然后安装 GRUB 2
sudo grub-install/dev/sda --root-directory=/mnt [use copy and paste for this one as there are some spaces that you need get right. ]
假设这是你的问题,那么你应该能够重新启动,一切都会正常工作。
最初的解决方案来自于这里: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html
最后使用 ls 命令,一个文件夹一个的找,终于在
通过 ls /
ls /lib/grub/i386-pc/normal.mod 找到该文件!!
依次输入:
set root=(hd0,msdos13)/boot/grub
set prefix=(hd0,msdos13)/boot/grub
insmod normal
结果启动后还是不行。
在 lib/grub/ 下找到,设置后也无法启动,哎,最后也没有找到 boot/grub ,只好放弃了,下一个吧。
这个比较乖巧,选择第三个,直接就能启动,但是问题又来了。
没有告诉我用户名和密码呀。。。。
额,还需要重启,在选择系统那里,快速按上下键,然后到第三个,按字母e键,进入启动配置文件,进行修改。
按键盘e键,进入如下界面
选择第二项—kernel,然后继续按”E”
看到这个界面:
在rhgb quiet后回车输入single或者1,然后回车然后回车后,回到该界面,然后按b进行重新引导系统
启动后,我们发现直接进入系统,无需要输入账户及密码
哎,我的又失败了。
报错:telling init to go to single user mode.
init:rc main process killed by term signal
init:rcs-sulogin main process killed by kill signal
此报错是上次关机时为正确关机造成的,关机时需要停掉服务,使用shutdown -h now 关机重启后正常了
可是我要永单用户登陆呀,没说怎么解决不是么?
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200108160358647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10
最后,发现在输入 single那里,把没用的删掉,最后输入 single,启动后居然进系统了。不过有两个报错,不知道是什么,先不管。
启动后,在画面中的“#”后输入“passwd root”,重新设置root的密码,密码输入一遍,确认输入一遍,共2遍,然后输入reboot重启系统,root密码重置就完成了。
但是,我启动后,又卡在下图:
哎呀,卡了一会,干了点别的,居然启动了。哇哈哈。
用刚才修改的密码,登陆。yes成功。
然后就能看看他里边到底又什么东东。
发现 /var/log 下又很多日志,先记录下。等下下载下来分析一下。
还有这里也有一堆日志。
这里应该是程序,先记录下,等下分析。