通过chroot方式安装Arch Linux
通过chroot方式安装Arch Linux,通过chroot方式安装Arch Linux
什么是Arch?(distrowatch.com的介绍)ArchLinux是一份为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/distributions/archlinux/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/modules.php?name=Forums&file=viewtopic&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.254ROUTES=(gateway) ---->注意这里要去掉"!"配置/etc/fstab:Arch的fstab和其他发行版表