the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


ubuntu下硬盘安装win7和archlinux 23564°C

作者:the5fire | 标签:         | 发布:2013-04-08 10:53 p.m.

上周末在家两天的时间只做了一件事,那就是装系统。不同于在很早之前没事就拿张ghost盘给人装系统(win的),这次的折腾是比较有技术含量的。整个过程中弄坏了一个sdcard的卡托,sdcard也被我格了无数遍。到最后发现其实全硬盘安装就可以了。

这个过程中学到了什么呢?简单的说就是通过grub引导系统,通过硬盘安装系统,还有就是原来卡托(或说读卡器)里面是有芯片的(之前一直以为它只是起连接的作用)。

先说环境

我的笔记本是完全的ubuntu系统,之前需要使用到win的地方都跑在虚机里面,速度比较慢。因此就有了这样的念头,在ubuntu下装一个win系统。同时也想尝试下archlinux,因此最终的理想结果是装一个archlinux和ubuntu的双系统。

大概过程

先win后archlinux

本来想法的很简单,先把系统重装为win系统,然后在装一个archlinux。网上这方面的资料比较多,装起来也比较容易。无奈把winxp写入sdcard之后启动,发现无法找到硬盘,估计是我把整个硬盘格为ext4的缘故,发现这条路行不通,于是找到另一个方案。

直接在ubuntu下安装win

既然不能先装win,那就换个方案,网上找到关于在linux下装win的文章。这里面走了一些弯路,主要是一开始没有考虑到安装win所需要的磁盘分区,以及通过grub安装只能引导安装版的系统,ghost的没办法安装。因此就先用做一个gparted的live盘,然后进入系统,从磁盘上划出一个ntfs的分区。然后通过grub引导win7的安装镜像进行安装。折腾到这基本上搞懂了怎么用grub引导系统了。

正题,在ubuntu下安装win7

建立分区

像上面所说,如果你也是完全的linux环境,那就要先建个ntfs的分区出来。然后再来配置grub。

你需要系统要安装在哪个分区,通过 sudo fdisk -l 可以查看,比如我的是:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   371175423   185586688   83  Linux
/dev/sda2   *   575975424   616935423    20480000    7  HPFS/NTFS/exFAT

其中/dev/sda2就是我划分出来的ntsf分区,那我就要把win系统安装到这里。

写入iso镜像

ubuntu下建立iso镜像要比win下容易多了,根本不需要其他软件,只需要一句命令:

mkdir /mnt/win7
sudo mount -o loop windows7.iso /mnt/win7
sudo cp -rv /mnt/win7/* /dev/sda2

这样就把win7写入到你新建的分区中(其实就是把镜像解压到你建立的分区中),然后来引导。

grub引导

其实也就是几个配置的事,如果你的ubunut系统一开机没有选择系统的菜单的话,那你需要在开机之后按下shift来显示。不通过配置文件其实也可以通过在系统选择菜单部分按下c进入grubdos中进行启动。不过那样需要记的东西比较多了。

这里的配置文件是指, 系统中 /boot/grub/grub.cfg配置文件,在这个文件中会看到类似下面的代码,添加的时候,按照同样结构来写。

感谢网友的指出,另外有句话也得说下,博客的价值不仅仅在于文章,评论也有其价值。这个就像是一个开源项目,里面有bug,你发现了,当然发现也是有价值的,但是提个patch价值更大些,于人于己都是如此。

配置文件如下:

menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os {
    insmod ntfs
    set root='(hd0,2)'
    ntldr (hd0,2)/bootmgr
    boot
}

这里需要注意你的win7是安装盘,而不是ghost盘。

这时,重启,在选择操作系统的菜单上你发现了多了一个win7的选项,然后就是正常的安装了,这里需要提醒的是,我给win的分区分了20个G的空间,装好win7及一些基础软件后竟然只剩不到1G,因此磁盘富裕的话要多分些空间。

安装archlinux

安装archlinux的话要麻烦一些,因为你不能直接在你要安装的分区中对系统进行引导。因此你需要先把引导文件系统放到其他分区,比如我这里主分区(/dev/sda1/)中的home/the5fire/arch目录下,然后写grub配置:

menuentry "Arch Install" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,1)'
    linux (hd0,1)/arch/boot/vmlinuz-linux root=/dev/sda1
    initrd /boot/initramfs-linux.img
}

从这里启动然后就进入安装模式了,其实就是一个终端。

剩下的就可以参考这两篇文章了:

http://eidolon.iteye.com/blog/320923 从第5步开始看。

archlinux中文新手指南

大概就这些了,时间够的话自己折腾一下也不错。

把archlinux装好之后,其实也没有去用它,因为还得去安装GUI,还需要配置n多东西,时间成本不允许,还是在ubuntu下,搞一个轻量的桌面来用。这两天在试用E17桌面。


----EOF-----

扫码关注,或者搜索微信公众号:the5fire

其他分类: