日期:2014-05-16  浏览次数:20583 次

ArchLinux 2009.08 硬盘安装

作者: andlu [iteye.com]

日期: 2010-01-12

引言

  ArchLinux是一个不错的Linux发行版,一直以来都是我首选的Linux工作平台。最近,要在一台新机器上安装2009.08版本的ArchLinux,但没有光盘介质,也没有U盘,只好使用硬盘安装方式。找了下资料, 有些是较老的资料,已不适用,有些描述有些错误,有些步骤较繁琐。因此,我将安装过程作个笔录,以备查用。
  其实,ArchLinux官方Wiki已有硬盘安装方式的详述,可惜的是,其开篇讲的是老版本的ISO硬盘安装,有些粗心的读者没注意到后面的关于2009.08版本的正确描述。而且,似乎ArchLinux的官方Wiki在国内不是太引人注意。
  官方Wiki上的硬盘安装描述参考这里: http://wiki.archlinux.org/index.php/硬盘安装_Arch_(简体中文)

前提与假设

  本文假设读者有基本的ArchLinux知识,了解ArchLinux的相关术语及光盘启动后的安装流程。
  我使用GRUB for DOS(GRUB4DOS)来引导ArchLinux的ISO文件。理论上,还有其它引导器也可以引导ISO,但不在本文讨论范围之内。
  我使用的GRUB for DOS是0.4.4版,下载地址是:http://download.gna.org/grub4dos/grub4dos-0.4.4-2009-06-20.zip。
  本文只涉及2009.08版本的ArchLinux的硬盘安装,并假定你已从ArchLinux官方网站提供的链接(http://www.archlinux.org/download/)得到了正确的ISO文件。我使用的是archlinux-2009.08-core-x86_64.iso,不同格式的iso在安装方法上会有不同,本文只以core格式为例。
  假定你已有了一个可以安装GRUB4DOS的操作系统(GRUB4DOS可在DOS、Windows、Linux上进行安装)。本文仅以Windows引导器为例。

准备

  进入Windows,将GRUB4DOS中的grldr复制到C盘根目录。
  打开一个命令窗口,输入命令 "attrib -s -h -r C:\boot.ini" 去除boot.ini文件的写保护。如果C:\boot.ini文件不存在,在C:\下创建一个新的空文件并命名为boot.ini。
  修改boot.ini,在[operating systems]这段下边加上一行:
C:\grldr="grub4dos"
  如果boot.ini是空的,输入内容如下:

[boot loader]
timeout=3
[operating systems]
C:\grldr="grub4dos"


  然后输入命令 "attrib +s +h +r C:\boot.ini" 给boot.ini文件加上系统写保护。
  如果你愿意,可将GRUB4DOS中的menu.lst文件复制到C盘根目录下。
  确认你将ArchLinux的ISO文件放在何处,简单起见,我将archlinux-2009.08-core-x86_64.iso复制了一份到C盘根目录,取名为arch.iso。并且,在我这里,C盘位于第一块硬盘第一个分区,后面文字中出现的(hd0,0)和/dev/sda1即代表该位置,请视自己的配置情况进行替换。
  在Vista、Win7、Win2008中,使用了新的引导器,但一般情况下仍能引导boot.ini中的项目。如果不能,请自行查找如何在Windows的BCD中安装GRUB4DOS。

安装

  重启机器,出现引导菜单时,选择"grub4dos"。如果你在前面的步骤中复制或创建了menu.lst文件,就会出现GRUB4DOS的菜单,否则可能直接进入GRUB命令模式。如果出现菜单,按'c'键进入GRUB命令模式。然后,输入如下命令行:

map --mem (hd0,0)/arch.iso (0xff)
map --hook
chainloader (0xff)
boot


  如果你不知将arch.iso放在哪个分区上了,可以输入这个命令查找: "find /arch.iso"
  成功启动后应该出现ArchLinux的光盘启动菜单了,选择LiveCD模式,启动,最后会出现个错误,提示/dev/archiso找不到了,这是正常的,因为我们确实没有插入ArchLinux的安装光盘,请等上30秒。30秒后,系统因无法找到/dev/archiso而进入shell命令模式。
  现在,我们可以使用Linux的loop设备来虚拟光盘介质。输入如下命令:

mkdir /win
mount -r -t ntfs /dev/sda1 /win
modprobe loop
losetup /dev/loop6 /win/arch.iso
ln -s /dev/loop6 /dev/archiso


  上面的/dev/sda1是arch.iso所在的分区,而ntfs是该分区的格式,如果是FAT32格式的,请把ntfs替换为vfat。
  然后,按CTRL+D组合键,或是输入exit后按回车,继续进行安装过程。
  如果没出错的话,后续过程就和光盘启动后的过程完全相同了。
  LiveCD启动完毕后,可输入 "/arch/setup" 进行安装。

引导器

  安装最后一步,你可以选择安装grub引导器,或者继续使用GRUB4DOS来引导ArchLinux系统。如果是使用GRUB4DOS,可修改c:\menu.lst,加入ArchLinux启动项(假设 / 位于 /dev/sda3):

title  Arch Linux
root   (hd0,2)
kernel /vmlinuz26 root=/dev/sda3 ro
initrd /kernel26.img