abbshr / abbshr.github.io

人们往往接受流行,不是因为想要与众不同,而是因为害怕与众不同
http://digitalpie.cf
444 stars 44 forks source link

制作windows启动器 #38

Open abbshr opened 9 years ago

abbshr commented 9 years ago

我以前常在windows环境下硬盘安装ubuntu, 过程挺痛快的, 没遇到什么大波折, 我想Linux下安装windows也会一样容易吧.

先列表统计一下安装方式:

光盘方式最傻瓜, 除此之外U盘安装最简单, 每款操作系统都有U盘刻录工具, 只要把镜像交给它基本上就ok了.

不过像我这样不喜欢用寻常方法的, 就要花点时间研究研究另外两种方法了.

忽略上面那句话, 其实是被迫用其他方法的.

家里的ubuntu 13.10台式机要装windows 7, 现在手边没有光盘, 只有一个1GB的U盘, 但找到一个闲置的IDE接口老式硬盘.

难道没U盘就玩不转吗? 这怎么可能~ window装ubuntu不也是用硬盘安装的嘛~~~

ok, 玩玩在ubuntu下用外置硬盘装windows.

还好经过一番折腾终于成功了. 思路是这样的:

  1. 准备windows 的镜像文件, 比如win.iso.
  2. 找到外置硬盘:

       df -lh
       # 比如/dev/sdb
  3. 给外置硬盘重新分区:

       sudo fdisk /dev/sdb
       # 看下分区表:
       p
       # 假设sdb被分为sdb1和sdb2两个分区
    
       # 删除原有分区
       d
    
       # 重新创建分区
       # 把整块硬盘划分为一个分区:
       n
       # 因为是整块硬盘, 所以参数不用更变,使用默认即可
       # 现在分区变成了sdb1
    
       # 为了制作启动盘, 所以要把分区设为可启动
       a
    
       # 因为要引导的是windows, 所以还要把文件系统类型标记为NTFS 
       # (HPFS/NTFS/exFAT), 编号为7
       t 7
    
       # 写入新的分区表
       w
    
       # 如果这块硬盘在分区之前已经挂在, 那么之后可能会提示无法变更分区表, 这时可以先卸载它:
       # 假设挂载点为/media/ran/hd
       sudo umount /media/ran/hd
       # 然后执行partprobe强制内核写入新的分区表
       sudo partprobe
    
       # 如果还是提示分区表无法写入, 那么重启一下系统吧
  4. 格式化分区:

       # 格式化为NTFS
       mkfs.ntfs -f /dev/sdb1
  5. 写入windows专用引导, 学过操作系统我们都清楚, 这一步很关键.

       # 我Google发现用lilo程序(类似grub的老式引导设置)可以写入windows系统引导.
       # 一般ubuntu是不会安装lilo的, 因为默认是用的是grub
       sudo apt-get install lilo
    
       # 向硬盘中写入主引导记录
       sudo lilo -M /dev/sdb mbr
  6. 挂载镜像和硬盘

       sudo mount -o loop win.iso /media/ran/iso
       sudo mount /dev/sdb1 /media/ran/hd
    
  7. 拷贝镜像文件

       # 这一步用cp还是dd都行,怎么搞都可以了
       cp -r /media/ran/iso/* /media/ran/hd

到这里, 一个windows启动硬盘就诞生了. 这一方法不会受限于系统的版本.

为了以后不再重复上面的步骤, 最好是把折腾到这一步的所有工作成果再保存成一个镜像文件:

    # 注意block和count的选择, 要不然全盘复制可就得不偿失了.
    dd if=/dev/sdb1 of=/home/ran/bak/win.iso
terry-fei commented 9 years ago

good job,最近在研究黑苹果,clover引导Yosemite