存档

2010年6月 的存档

06

今天重装Arch时发现最新的2010.05安装镜像只提供了光盘ISO版本,而没有原来的USB镜像版本了,所以只能放弃USB安装的方案。但是为了一次重装系统刻张盘实在浪费,所以就研究了下如何利用这个ISO镜像来实现硬盘安装。

查看了一下ArchWiki,刚好有一篇文章介绍利用ISO镜像安装Arch的方法,主要是利用grub将ISO镜像映射到内存中以供安装使用。不过这篇文章是在2009.08的安装镜像基础上的,在2010.05镜像上有些地方需要做些改动。下面是我的详细的安装过程。

首先要有一个可用的grub。我这里用的grub4dos,需要注意的一点是,我最先用grub4dos 0.4.3没成功,换到0.4.4版本顺利安装。然后将arch的安装镜像放在grub可读的分区内,如(hd1,0)/archlinux-2010.05-core-i686.iso。在启动进入grub时,按“c”进入grub的命令行模式。依次执行以下命令:

grub> map –mem –heads=0 –sectors-per-track=0 (hd0,1)/archlinux-2010.05-core-i686.iso (0xff)
grub> map –hook
grub> chainloader (0xff)
grub> boot

如果以上命令执行过程均没有问题,执行boot后应该就进入ISO镜像的启动流程了,按照正常方式选择arch的live方式,进入安装环境。

安装环境启动过程中,会提示没有找到安装光盘,然后提供了一个shell让用户解决这个问题,其原因在于arch的安装环境是通过光盘的label去找安装光盘的,也就是/dev/disk/by-label/ARCH_201005。所以我们还是需要手动将硬盘上的ISO文件链接到这个位置。当然首先要挂载ISO镜像所在的硬盘分区。这里需要特别注意一点,在Arch安装环境中,不要把任何分区挂载到/mnt目录下,Arch安装环境会将/mnt挂载为安装目标。可以执行下面的命令完成ISO镜像的链接工作:

#mkdir /tmp_mnt

#mount –r –t vfat /dev/sdb1 /tmp_mnt

#modprobe loop

#losetup /dev/loop6 /tmp_mnt/archlinux-2010.05-core-i686.iso

#ln –s /dev/loop6 /dev/disk/by-label/ARCH_201005

#exit

如果没有问题的话,exit后arch会继续安装流程。后面的安装就与正常的光盘安装无异了。

以前用debian的时候,debian的ISO镜像中会提供用于硬盘安装的内核和ramdisk镜像,可以用grub手动加载,安装环境启动后中debian会自动检测ISO镜像位置,挂载ISO镜像继续安装。看了一下arch的ISO镜像内容,感觉arch应该也可以用这种方式进行安装,有兴趣的tx可以尝试一下~

,