当前位置:操作系统 > Unix/Linux >>

通过chroot方式安装Arch

什么是Arch?(distrowatch.com的介绍)

Arch Linux是一份为i686优化的轻量级Linux发行,它包含了各种软件的最新稳定版本。软件以.tar.gz格式打包并由包管理器进行跟踪维护,这样的设计使得软件升级非常容易。与其他发行相比,Arch的技术相当之先进。一些相对不大使用(至少对我而言)的东西没有保留下来(例如,info页面)。一次缺省的Arch安装带给你的是一套牢固的系统基础,你可以在此基础上增加软件包从而创建你所需要的定制安装。Arch的包系统允许你方便地创建你自己的软件包,这使得按你自己特定的配置重新编译一份新的软件包变得非常容易。Arch的另一个目标是让用户尽可能地使用到Linux的新特性,例如 ReiserFS、ext3以及devfs。

自从使用lfs后,就喜欢上了可以chroot安装的系统,真方便啊。 所以就想使用chroot方式安装Arch
我现在只有一个20G的ReiserFS分区,已经装了10G的东东。单独分区装Arch不可能了,只能想办法装在这20G的分区上。
先用Qemu装了遍,发现Arch的安装程序很简单,定制性很强,正好适合chroot安装。

开始我的Arch之旅: ^_^

http://mirror.pacific.net.au/ibiblio.../0.7/iso/i686/
这里可以下载到Arch-0.7的base版和完整版,当初下载时不了解,下载了完整版,结果装的时候只装了base的东东,剩下的都直接从网上下载安装的最新版本

先从ISO中提取出chroot安装需要的东东(initrd.img):
[root@Arch ~]#mount /root/arch-0.7.iso /root/Arch
[root@Arch ~]#cp /root/Arch/isolinux/initrd.img /root
解压缩initrd.img:
[root@Arch ~]#cat initrd.img |gzip -d >initrd
挂载在/root/tmp下:
[root@Arch ~]#mount -o loop initrd tmp/

将initrd.img中的东东全部复制到目标分区上(我挂载在/mnt/distro):
[root@Arch ~]#mkdir /mnt/distro/Arch
[root@Arch ~]#cp -aR /root/tmp/* /mnt/distro/Arch
因为安装程序需要在/dev/vc/5记录安装信息,所以在/dev下创建它:
[root@Arch ~]#cd /mnt/distro/Arch/dev
[root@Arch dev]#mkdir vc
[root@Arch dev]#mknod vc/5 c 4 5
将arch-0.7.iso挂载在src目录下,以备安装软件包:
[root@Arch dev]#mount /root/arch-0.7.iso /mnt/distro/Arch/src -o loop

chroot安装Arch:

因为initrd.img里面没有bash,chroot会出错,cp过去一个:
[root@Arch dev]#cp /bin/bash /mnt/distro/Arch/bin
[root@Arch dev]#chroot /mnt/distro/Arch
[I have no name!@Arch /]#
设置TERM为linux,这样运行setup才不会出错:
[I have no name!@Arch /]#TERM=linux

运行setup开始安装,这个程序在图形下的终端比较难看,我是ctrl+alt+F2在字符下运行的

[I have no name!@Arch /]#arch/setup
首选选择安装介质,选cdrom就可以了。
代码:
"Prepare Hard Device" 略去。我可不想分区 :)"Select Packages" 选择src,选择base,调整安装的软件包,默认即可。"install Packages" 开始安装,所有软件包安装在/mnt。"install kernel " 我选择了v2.6IDE的,先装上再考虑自己编译内核 :)"Configure System" 选择喜欢的编辑器编辑吧,可以再图形界面下做。"Install Bootloader" 略去。我有/boot分区,使用它管理所有的系统启动。
配置系统:

我是按照linuxfans:sutie大侠的文章配置的:
http://www.linuxfans.org/nuke/module...topic&t=106299

不同的是,我是固定IP上网,说一下固定IP怎么配置吧:
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
# (prefix an interface in INTERFACES with a ! to disable it)
#
# Note: to use DHCP, set your interface to be "dhcp" (eth0="dhcp")
#
lo="lo 127.0.0.1"
eth0="eth0 10.70.54.30 netmask 255.255.255.0 broadcast 10.70.54.255"
#IP:10.70.54.30 netmask:255.255.255.0 broadcast 10.70.54.255
#填上自己的IP,NETMASK.....
# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
# (prefix a route in ROUTES with a ! to disable it)
#
gateway="default gw 10.70.54.254" ------>网关:10.70.54.254
ROUTES=(gateway) ---->注意这里要去掉"!"

配置/etc/fstab:

Arch的fstab和其他发行版表示分区所有不同,表示hda1:/dev/discs/disc0/part1

/etc/fstab:
那些tmpfs,devpts,usbfs...不用修改,添加上需要挂载的分区即可。
.......略
/dev/discs/disc0/part5 / reiserfs defaults 0 1
/dev/discs/disc0/part11 swap swap defaults 0 0

安装好后我使用lfs中的内核引导Arch,发现无法识别/dev/discs/disc0
只好换回原来表示分区的格式(/dev/hda5),不知道是哪里的问题
我现在fstab的样子:
/dev/hda5 / reiserfs defaults,noatime,notail 0 1
/dev/hda11 swap swap defaults 0 0

配置grub/menu.lst:

title Arch Linux
kernel (hd0,7)/vmlinuz26 root=/dev/discs/disc0/part5 ro
这是使用Arch安装程序安装的2.6.10的内核。我b把它复制到/boot分区(hda8),统一管理
title Arch Linux
kernel (hd0,7)/lfs-2.6.10-lvm root=/dev/hda5 vga=791
这是使用lfs内核的配置文件。 无法识别/dev/discs/disc0,只好用/dev/hda5

在Arch中使用已有的内核也很简单:

grub中使用旧内核引导,如上所示,将原内核的/lib/modules/`uname -r`目录复制到Arch /lib/modules中,在/etc/rc.conf中加载需要启动的模块就可以了,当然也可以使用hotplug自动加载,只是hotplug服务启动慢一点

我的/etc/rc.conf加载模块配置:
#
# Module to load at boot-up (in this order)
# (prefix a module with a ! to disable it)
#
MODULES=(!via_rhine !ide-scsi snd_intel8x0 soundcore snd snd_seq_oss snd_pcm_oss snd_mixer_oss rtc nls_cp936 intel_agp agpgart kqemu)
snd_intel8x0是我的声卡,似乎这里不用加载这么多关于声音的,没实验了,都写上了
关于这些模块名可以从/lib/modules/`uname -r`/modules.alias 得到。

一切做好后,将Arch系统移动到目标分区根目录下:
[root@Arch Arch]#mv /mnt/distro/Arch/mnt/* /mnt/distro[page_break]
OK,现在就可以reboot,体验Arch的风采啦。 ^_^

base安装好的只是基本系统,没有X,没有KDE....下一步从网上下载回最新版本X,KDE安装上。
也在chroot环境进行吧,不用对着黑呼呼的进度条。还可以听听歌,上上网的
[root@Arch ~]chroot /mnt/distro
[root@Arch Arch]
先同步更新软件数据库:
[root@Arch Arch]pacman -Sy
安装xorg:
[root@Arch Arch]pacman -S xorg
速度很慢的话,可以使用下载工具从镜像站点下载回来xorg的pkg包使用pacman -A 包名安装。

OK,快去pacman吧 !
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,