上周末在家两天的时间只做了一件事,那就是装系统。不同于在很早之前没事就拿张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装好之后,其实也没有去用它,因为还得去安装GUI,还需要配置n多东西,时间成本不允许,还是在ubuntu下,搞一个轻量的桌面来用。这两天在试用E17桌面。
微信公众号:Python程序员杂谈