首页 » Arch Linux, Linux » 硬盘安装ArchLinux(2010.05版本实测)
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可以尝试一下~

,

23 条评论 于 “硬盘安装ArchLinux(2010.05版本实测)”

  1. Kay
    2010年7月24日20:00 | #1

    你好,我在进入grub按c后敲入第一行命令为什么出现了 unrecognized device string …. 谢谢

    [回复]

    zhtlancer 回复:

    @Kay, 这个命令应该根据你的实际硬盘设备和分区设置进行更改,请确定你的iso镜像所在分区,把”(hd0,1)”改成合适的

    [回复]

    Kay 回复:

    @zhtlancer, 我拷到了C盘,然后用hd(0,0)没错阿

    [回复]

    zhtlancer 回复:

    @Kay, 哦,grub的版本也没问题吗,另外注意一下断行的问题有时候也会引起这个问题

  2. PJ.Hades
    2010年7月30日23:02 | #2

    我也遇到同样的问题,提示unrecognized device string
    但我没用grub4dos
    我本来机器上装了debian和windows xp,有grub……

    [回复]

    zhtlancer 回复:

    @PJ.Hades, grub我还没试过,但应该也是类似的方法,也许有些区别,回头我试试看吧

    [回复]

    gfreezy 回复:

    @PJ.Hades,
    grub不行,貌似只能用grub4dos

    [回复]

    PJ.Hades 回复:

    @gfreezy,

    恩,我发现我把vmlinuz和initrd.img两个文件搞错了
    得用arch光盘里的两个文件……-_-|||
    直接在grub下root、kernel、initrd再boot就行了~

    [回复]

    zhtlancer 回复:

    @PJ.Hades, 嗯,是必须要用arch安装镜像里面的内核和ramdisk,因为arch的安装环境都在那个ramdisk里面~

  3. thorne
    2010年8月2日11:00 | #3

    grub无法完成那个map操作
    grub4dos可以
    就是这样
    我开始用Debian的Grub就不成,估计是软件版本过低

    [回复]

  4. Litghtni
    2010年8月5日12:53 | #4

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

    grub> map –hook

    注意,mem前应为俩个 ‘-’ ,即 –mem。
    heads、sectors、hook前也应为两个‘-’。

    [回复]

    zhtlancer 回复:

    @Litghtni, 对,都是两个’-',wp自动把这个给转义了,一直没发现……

    [回复]

  5. blabapa
    2010年9月26日04:06 | #5

    grub4dos是不是只支持32位系统,我64位win7表示压力很大

    [回复]

    blabapa 回复:

    @blabapa, 请忽视我的压力,我发现我太白痴了。。

    [回复]

    zhtlancer 回复:

    @blabapa, grub只是个引导器,应该不受64bit win 7的影响的~

    [回复]

  6. 2010年11月6日17:11 | #6

    其实arch 2010.05是可以用U盘装,只需要用 dd 命令写入U盘,然后就可以U盘安装。可惜的

    [回复]

    zhtlancer 回复:

    @龙虾, 之前是有专门提供USB安装用的img镜像的,不知道从什么版本开始只提供ISO的了。ISO按理说应该不能直接dd到U盘吧,毕竟光盘启动方式和USB-HDD不太一样,两者格式也不太一样,直接dd上去估计应该是不能正常使用的~

    [回复]

    龙虾 回复:

    我是测试安装成功后,才告诉你的,大哥可以自己试试(不行了,多试几台)。
    arch官方有给出方法。

    [回复]

    zhtlancer 回复:

    @龙虾, 嗯,刚刚去看了一圈,现在arch官方的安装向导给出的确实是这个方法。
    但是个人感觉这个方法的兼容性较差,并不是所有的U盘和主板支持USB光盘启动模式,而且还需要清空U盘的全部内容,并不方便。其实我这篇文章的基础也是基于Arch Wiki上的文档,而且兼容性强一些,只要支持USB-HDD方式就可以,而且不用清空U盘内容。具体选择什么方式,还需要结合自己的实际情况来定了呵呵~

  7. 2010年11月6日17:12 | #7

    可惜的是我的不能启动,呵呵~~!

    [回复]

  8. 2010年12月13日11:18 | #8

    lancer给共享一下你这个评论插件嘛~

    [回复]

    zhtlancer 回复:

    @Rabbit_52, WordPress Thread Comment,这个插件很不错的~

    [回复]

  9. 2010年12月13日13:01 | #9

    @zhtlancer, 我那个可能是主题的原因显示不够完美

    [回复]

发表评论