平时工作中用到linux的操作命令较多,因此为了方便,就给电脑装了双系统,一般工作的时候,都选择进入linux系统。但是今天有件工作之外的事情需要解决下:创建一个windows启动盘。如果按照往常来说,我会启动windows,然后用xxx工作制作u盘启动工具,傻瓜式的创建启动盘。但是今天不想再重启系统进入windows做u盘的启动盘了。想在想在linux系统中做u盘启动盘。
之前也接触到在linux中做u盘启动盘的一些博客或其他信息,全部是说用dd命令就可以搞定,之前也试过,dd命令刻录windows的iso文件有问题。系统无法识别刻录出来的启动盘。之前没有深究什么原因造成的,今天继续这个问题,上网查找解决方案。找了好长时间终于找到一篇可以正常做启动盘的文章。下面是文章的网址,有兴趣的大家可以自行查看:
url:http://blog.csdn.net/mike8825/article/details/51138575?locationNum=9 感谢 “天外之客”分享。
博客中也说了,linux的iso都自带mbr,因此dd刻录linux的iso时没有问题,会将mbr一同刻录进u盘中。但是windows的iso文件不自带mbr,所以在linux系统做windows的启动盘的时候,首先需要向u盘中写入mbr信息。之后在将windows的iso内容拷贝到u盘中。这样bios就能正确识别mbr,进而安装windows系统。
按照上面博客的步骤,我进行了如下操作:
我的操作系统:ubuntu 17.04
1.首先检查有没有安装ntfs-3g,看到我已经安装过了.如果没有安装的执行命令: sudo apt install ntfs-3g
1 $ apt list ntfs-3g #检查是否安装了ntfs-3g 3 正在列表... 完成 4 ntfs-3g/zesty,now 1:2016.2.22AR.1-4 amd64 [已安装] 5 6 $sudo apt install ntfs-3g #如果没有安装,则执行这个命令安装
2.安装lilo,看到也安装完成了.如果没有安装,执行命令:sudo apt install lilo 进行lilo的安装.
1 $dpkg -l lilo 2 3 期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h) 4 | 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T) 5 |/ 错误?=(无)/须重装(R) (状态,错误:大写=故障) 6 ||/ 名称 版本 体系结构 描述 7 +++-===============================-====================-====================-=================================================================== 8 ii lilo 1:24.2-2 amd64 LInux LOader - the classic OS boot loader 9 10 $ sudo apt install lilo #如果提示未安装,则进行安装操作
3.查看U盘的盘符,将U盘的内容备份,之后格式化U盘.格式化程fat32就可以.(可以看到我的U盘格式已经是fat32的了)
1 $ sudo fdisk -l #查看U盘的分区 2 3 ... 4 5 Disk /dev/sdb: 7.3 GiB, 7784628224 bytes, 15204352 sectors 6 Units: sectors of 1 * 512 = 512 bytes 7 Sector size (logical/physical): 512 bytes / 512 bytes 8 I/O size (minimum/optimal): 512 bytes / 512 bytes 9 Disklabel type: dos 10 Disk identifier: 0x48156368 11 12 设备 启动 Start 末尾 扇区 Size Id 类型 13 /dev/sdb1 * 1347328 15204351 13857024 6.6G c W95 FAT32 (LBA)
可以看到我的U盘的盘符是/dev/sdb
1 $ sudo mkfs.vfat /dev/sdb1 #格式化U盘,前提是U盘被正确卸载 2 mkfs.fat 4.0 (2016-05-06)
我用上方的命令格式化了U盘为fat32的格式.
4.在u盘中创建mbr(mbr是什么意思,自己搜索吧),我这里使用的lilo
1 $ sudo lilo -M /dev/sdb mbr #在u盘中写入mbr 2 Backup copy of /dev/sdb in /boot/boot.0810 3 The Master Boot Record of /dev/sdb has been updated.
上方已经提示我创建mbr成功了.下面就是将windows的iso中的内容拷贝到U盘中就可以了.
5.挂在镜像和U盘,将windows镜像中内容拷贝到U盘中.
1 $mkdir /tmp/win7 2 $mkdir /tmp/usb 3 4 $sudo mount -o loop cn_windows_7_professional_with_sp1_vl_build_x64_dvd_u_677816.iso /tmp/win7 5 6 $sudo mount /dev/sdb1 /tmp/usb 7 8 $ df -h #查看挂载点 9 文件系统 容量 已用 可用 已用% 挂载点 10 ..... 11 ..... 12 /dev/loop4 3.1G 3.1G 0 100% /tmp/win7 13 /dev/sdb1 6.6G 4.0K 6.6G 1% /tmp/usb
看到我已经挂载了系统,剩下的就是拷贝/tmp/win7中的东西到/tmp/usb中了
6.拷贝iso文件内容到usb中.
$ cp -rf /tmp/win7/* /tmp/usb #拷贝到U盘中 $sync #将内存中数据flush到磁盘中 $sudo umount /dev/sdb1 #卸载U盘 $sudo umount /tmp/win7 #卸载镜像
现在搞定了.重启电脑,验证劳动成果吧