win7/archlinux双系统安装手记(一) » 荒野无灯weblog

Keep It Simple, Stupid.

荒野无灯weblog

win7/archlinux双系统安装手记(一)

HP4311S的笔记本运行WIN2003 和 UBUNTU 10.04 也有一段时日了。2003现在 是越来越慢(软件装得相当多,加上WIN系统本身的文件系统不像LINUX那么给力,慢是必须的。),于是终于又换回了WIN7 。可怜我的本本了,被我折腾来折腾去的。目前为止我对它还是相当的满意,除了现在光驱不工作了(可能是我刻盘太多的缘故 :mrgreen: )。

其实原本是想装WIN7和UBUNTU11.04双系统的,结果装完WIN7和UBUNTU11.04后,发现11.04那个神马Unity界面和原来10.04Gnome界面相比,简直是蛋疼,于是删除之。在slackware和archlinux之间选择了archlinux .
关于archlinux,传送门:Arch 之道
UBUNTU,不是我不想用你,而是你变得不像你了。。。goodbye , my ubuntu desktop 10.04.2 . :cry:

准备工作:备份win文件系统数据,UBUNTU 10.04.2 数据。
一,从硬盘安装WIN7
如果光驱没坏我也不会这么蛋疼了。 :cry:
不过硬盘安装法有个好处,读取数据快啊。
准备工作:WIN7安装文件的提取,为从硬盘安装WIN7作准备
从WIN7 ISO镜像中提取整个安装盘的文件到移动硬盘或者U盘,这里我是提取到H:\win7iso ,iso文件用WinMount 神马的打开速度相当的快 :mrgreen:
1,分区格式化(NTFS)
从U盘启动机器,这里我用的是晨枫U盘维护系统2.0修改版 ,进入MAXDOS 8.0 ,fdisk删除所有分区。然后新建3个主分区,一个扩展分区。(PS:用fdisk建立扩展分区貌似有点小问题,这里我只是用fdisk来建立主分区,扩展分区进WINPE后再用Paragon Partition Manager来创建扩展分区。扩展分区留给LINUX用的,先不建立逻辑分区,到安装时再建立吧。
fdisk分区后别忘记格式化,format x: /q /fs:ntfs 。注意把第一主分区设置为活动分区。

图中的LINUX分区到后面安装LINUX系统时再来建立和格式化。这里先让它空着。
2,从U盘或者移动硬盘复制安装文件到本地硬盘
从U盘启动机器,进入WINPE,COPY H:\win7iso 到 D:\win7iso ,再把以下文件(包括目录及其下的所有文件,注意保持目录结构)COPY到C:\ (不一定是C,准确地说应该是第一主分区)。

  • bootmgr
  • efi/
  • boot/
  • sources/boot.wim

3,将windows的bootloader安装到第一主分区
接上面,在WINPE里面,进入CMD ,输入命令:

C:\boot\bootsect.exe /nt60 C:

英文提示写入成功就OK了。
重启,拔掉U盘。从本地硬盘启动。
4,WIN7安装
接上面,启动后,会进入WIN7安装界面,可能有人会问了,不是要进命令提示符吗?怎么直接出安装界面了?不要慌,点击“下一步”即可,-》“修复计算机” =》 否(或者选择第一项,手动修复的那个,不是选从备份还原) =》 下一步 =》命令提示符 。
好了,终于到这里了。下面先删除我们现在用的启动文件,以后安装WIN7后新的文件与旧的文件配置发生混乱。

del /f /q c:\bootmgr
rd /s /q c:\boot
rd /s /q c:\efi
rd /s /q c:\sources

然后运行安装程序:

E:\sources\setup.exe

由于晨枫U盘维护系统默认自己的盘符为D,因此,本地电脑的D盘符号变为E了。
PS:注意,是E:\sources\setup.exe ,不要错误地运行E:\setup.exe ,虽然这样也能弹出安装界面,但是点下一步之后就行不通了,提示缺少必要的驱动。
好了,接下来的步骤很简单,就不说了。
二,从硬盘安装archlinux
1,在MaxDOS中添加archlinux的引导信息及引导文件和镜像文件准备
WIN7安装到第一主分区,完成后,再安装一个MaxDOS 8.0 硬盘版。
进入C:\MaxDOS\ ,用文件编辑器编辑 Maxkr.gz 文件,在第一条目前面加一条:
这是近来版本的archlinux引导信息在GRUB中的写法:

title archlinux
rootnoverify (hd0,1)
kernel /linux/vmlinuz26 archisolabel=archiso 
initrd /linux/archiso.img
boot

并且从archlinux的 iso文件中提取archiso.img 和 vmlinuz26 两个文件,COPY到D盘的linux目录下面,把arch的iso文件也COPY到同样的地方 :

mkdir D:\linux
copy archiso.img D:\linux\
copy  vmlinuz26 D:\linux\
copy archlinux-2010.05-core-i686.iso D:\linux\

2.安装archlinux
重启,从本地硬盘启动,到显示启动项时,选择MaxDOS 8.0 ,再选择启动 archlinux .
201005版的这个archlinux硬盘安装有个麻烦之处就是,不能通过GRUB直接加载ISO文件,而是传递一个archisolabel参数给arch ,它是靠 这个label (/dev/disk/by-label/archisolabelname)来读取安装文件的。
进入arch安装引导后,会提示等待30秒从CD读取数据,由于这里我没有 CD,因此它会自动中断安装而进入SHELL,允许你手动修复这个问题。

PS:
由于archlinux在安装时会自动挂载东东到/mnt ,因此我们在这里尽量不用 /mnt 来作为挂载点。

mkdir /tmpmnt
mount -r -t ntfs /dev/sda2 /tmpmnt
modprobe loop
losetup /dev/loop6 /tmpmnt/linux/archlinux-2010.05-core-i686.iso
ln -s /dev/loop6 /dev/disk/by-label/archiso
exit

注意这里的label一定要与GRUB中指定的相同。这里用到了Loopback设备。

Loopback设备 是linux中的一个可以用来像其他媒体设备一样的虚拟设备。
媒体设备的例子像硬盘分区,例如/dev/had1,/dev/had2,dev/sda1,或者像/dev/fd0软盘分区一样的整个磁盘。这些设备全部都可以用来储存文件以及目录。它们可以被格式化成需要的文件格式(ext2fs, msdos, ntfs等)然后被mount。

losetup – 设 定 与 控 制 loop devices
语 法
losetup [ -e encryption ] [ -o offset ] loop_device file losetup [ -d ] loop_device
描 述
losetup 用 来 将 loop device 与 档 案 或 block device 联 结 、 分 离 . 以 及 查 询 loop device 目 前 的 状 况

在SHELL中输入以下命令后,程序自动加载ISO镜像中的东东了。然后我们进入了SHELL ,键入 root 以root 登录(这里不需要输入密码)。
执行

/arch/setup

运行安装程序,按步骤一步步来了。
这里说下安装时值得注意的几点:
时区选Asia/Chongqing或者 Asia/Shanghai 等都可以。硬件时钟标准选择时,选择local (若选择UTC时间,则显示的不是本地时间,这不是我们想要的)。
磁盘选择那里,选择手动分区和分配。千万别选使用整个硬盘。。。 :arrow:
a,分区
分区工具是cfdisk , 按照前面的规划,我这里分四个区就OK了。
分区的大小是按我的实际使用来算的。以前用的UBUNTU 10.04.2磁盘使用情况大概是如下:

/boot 38M
/ 938M
/home 20G
/usr 4.3G
/var 1.1G
/opt 1G
SWAP 2G

用cfdisk按如下分区:

sda5 (挂载点/boot) Linux 200M
sda6 (挂载点/ ) Linux 20G
sda7(挂载点 /home) Linux 30G
sda8 Linux swap格式 2G

最后一个 sda8 我们设置其格式为Linux swap .PS:这里的挂载点仅作说明之用。
后面在分配挂载点后,会按我们分配挂载点时设定的分区格式格式化分区,我试过两次,最后一个分区 sda8都提示格式化失败。不过没关系,关键是前面的分区格式化成功。直接通过就OK了。以后进系统用top 查看会发现swap可用为0,已用也是为0 。不过没关系,可通过命令来修复之。这里先不说。

b.挂载点分配
上面已经列出了,这里就不重复了。有一点要注意:/dev/sda4为扩展分区,别弄错了。
cfdisk分区之后Write ,然后可能会提示写入成功,但无法读取分区表信息,建议使用partprobe或kpartx修复。这里我们不用修复,直接重新启动一遍就行了。(不重启在分配挂载点时可能会只看到几个分区,而不是刚才我们分出来的全部分区。这可能是一个BUG ?)。重启之后又得挂载ISO,然后设置时区神马的啦。不过分区那一步是可以跳过了,直接到这一步设置挂载点。完了之后,接下来就是创建文件系统和安装软件了。
c.软件安装与系统配置
base软件包的话,还是建议选择,如果不全要,你得知道哪些是必须的,哪些你不需要。如sudo 神马还是必须D。
extra包可以有选择地安装一些,如glibc , gcc 等 。
安装软件之后就是配置了。
如果是使用静态IP,rc.conf 里可以设置IP和网关,主机名。否则就设置为DHCP模式了。
/etc/pacman.d/mirrorlist 里面搜索 China ,把其下的几个条目前的注释符号删除掉。
/etc/resolv.conf 里可以设置DNS,每个IP一行。按照它上面的格式设置就行了。
然后是启动器的安装。先配置grub的menu.lst , 其实也没啥配置的,ARCH都帮你做好了,只需要把最下面WINDOWS启动条目的注释干掉就OK了。然后就是安装GRUB了。这里我就一硬盘而已,选择是上面的 /dev/sda 就OK了。
如果手动用命令装的话,官方WIKI也给出了参考命令:
grub-install –root-directory=/boot sda 或者 grub-install /dev/sda
最后是root账号的密码设置了。好啦,现在就算基本完工了,折腾才刚刚开始。

三,调整配置
先top看下SWAP分区有木有生效,如果木有,就用下面命令生成SWAP分区吧:

[root@myhost /]# mkswap /dev/sda8
Setting up swapspace version 1, size = 2000056 KiB
no label, UUID=0f0742a4-b7ed-420d-a291-6b96a479e77a
[root@myhost /]# swapon /dev/sda8

然后ping 下本机IP看下网卡工作了没有。
然后是连网了,学校用的锐捷,加了客户端完整性验证。相当的BT。可没把我折腾死。
连网之后第一件事就是更新pacman了。
pacman-db-upgrade

pacman常用命令:

pacman -Syu
#安装包:
pacman -S package_name
#只卸载包
pacman -R package_name
#卸载(包括依存)
pacman -Rs package_name
#卸载(包括配置)
pacman -Rn package_name
#卸载(包括配置及其它程序不要了的依存)
 pacman -Rns package_name
 pacman -Ss
#查询已安装:
pacman -Qs package
#下载不安装:
 pacman -Sw package
pacman -U /path/to/package/package_name-version.pkg.tar.xz
#清除目前没有安装的包的缓存 (/var/cache/pacman/pkg):
 pacman -Sc
#Clean the entire package cache: 
pacman -Scc

Tagged in : Linux,win7,硬盘安装,archlinux,双系统

All Comments (0)
Gravatar image
No Comments