日期:2014-05-16 浏览次数:20685 次
作者: 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