LinuxSir.Org  
| 网站首页 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 05-02-28, 15:25 第 1 帖
6692975
 
6692975 的头像
 
 
注册会员  
  注册日期: Sep 2004
  帖子: 1,435
  精华: 5
 

标题: 通过chroot方式安装Arch [最新更新:05-05-17]


================================================
最新的chroot安装方式,请参考下面diony的帖子,可以节省不少时间。有任何问题请提出
================================================

什么是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
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吧 !







__________________
http://mengxin.blogchina.com/
我的blog linux notes,tips,faq.....不断更新中
您好,请多多关照 :thank

此帖于 05-05-17 03:27 被 diony 编辑.
  6692975 当前离线   回复时引用此帖
旧 05-02-28, 19:54 第 2 帖
ygw_ycf
 
 
 
注册会员  
  注册日期: Oct 2003
  帖子: 270
  精华: 3
 

真正的高手哇!
代码:
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 得到。
如果写全,这样就不用hotplug,能稍微加快点启动速度!

此帖于 05-02-28 20:04 被 ygw_ycf 编辑.
  ygw_ycf 当前离线   回复时引用此帖
旧 05-02-28, 21:16 第 3 帖
tx-cary 帅哥
 
tx-cary 的头像
 
 
注册会员  
  注册日期: Dec 2003
  我的住址: 广西南宁
  帖子: 2,467
  精华: 14
 

关于声音模块,只需填上snd_intel8x0就可以了,起他的在modprobe时会自动加载上的。

完全可以取消hotplug的,我的MODULES=(8139too uhci_hcd snd-via82xx nvidia)。取消hotplug,可以缩短大约10秒钟启动时间。

要知道自己需要加载哪些模块,最方便的方法是使用hwd -e来查看。







__________________
埋葬在青藏铁路周围的牺牲者们,在全国人民都在为青藏铁路的开通庆功和欢喜的时候,我为你们虔诚的祈祷。

确实,战争胜利了。
  tx-cary 当前离线   回复时引用此帖
旧 05-02-28, 21:56 第 4 帖
6692975
 
6692975 的头像
 
 
注册会员  
  注册日期: Sep 2004
  帖子: 1,435
  精华: 5
 

恩,我记得应该是只加载一个,其他的就会自动加载的。

hwd不错的东东,不知道能不能应用到liveCD中
  6692975 当前离线   回复时引用此帖
旧 05-03-01, 15:18 第 5 帖
ganloo
 
 
 
注册会员  
  注册日期: Sep 2003
  我的住址: 重庆
  帖子: 1,823
  精华: 10
 

Should be on the wiki。
  ganloo 当前离线   回复时引用此帖
旧 05-03-01, 18:56 第 6 帖
tx-cary 帅哥
 
tx-cary 的头像
 
 
注册会员  
  注册日期: Dec 2003
  我的住址: 广西南宁
  帖子: 2,467
  精华: 14
 

引用:
作者: 6692975
恩,我记得应该是只加载一个,其他的就会自动加载的。

hwd不错的东东,不知道能不能应用到liveCD中
hwd本身就是从liveCD中来的。knoppix
  tx-cary 当前离线   回复时引用此帖
旧 05-03-06, 20:07 第 7 帖
sutie
 
sutie 的头像
 
 
注册会员  
  注册日期: Oct 2003
  帖子: 202
  精华: 1
 

hotplug这个是起什么作用的??







__________________
我是一个孩子
一个被幻想妈妈
宠坏的孩子
我任性!--顾城
  sutie 当前离线   回复时引用此帖
旧 05-03-07, 08:41 第 8 帖
tx-cary 帅哥
 
tx-cary 的头像
 
 
注册会员  
  注册日期: Dec 2003
  我的住址: 广西南宁
  帖子: 2,467
  精华: 14
 

hotplug可以让你临时插入的PCI设备或者USB设备可以立即被使用。

据我理解就是通过后台服务,自动加载相应模块来驱动新设备。

如果你知道你的所有设备使用的是什么模块,就不必使用hotplug了。
  tx-cary 当前离线   回复时引用此帖
旧 05-03-11, 18:09 第 9 帖
chen1960
 
chen1960 的头像
 
 
注册会员  
  注册日期: Apr 2004
  我的住址: 福建
  帖子: 516
  精华: 1
 

我在用chroot命令的时候出现的错误:
chenpp:/mnt/disk/arch/bin # chroot /mnt/disk/arch
/bin/bash: error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory

chenpp:/mnt/disk/arch/dev # whereis libreadline.so.5
libreadline.so: /lib/libreadline.so.5 /usr/lib/libreadline.so

请问楼主,我该怎么做?
/mnt/disk做为安装的目标分区
/mnt/disk/arch是initrd镜像的文件复制目录?
我现在用的系统是suse9.2







__________________
人生就这么一次,我爱上linux了!!!!!!!!!!!!!!!


17寸CRT显示器
Intel(R) Core(TM)2 CPU 6300
biostar 965pt mb adata DDR2 667 1G mem WD250YS hd x2 raid0 SiI 3132 pci-e raid card 7600GS a2zs soundcard

此帖于 05-03-11 18:31 被 chen1960 编辑.
  chen1960 当前离线   回复时引用此帖
旧 05-03-11, 18:50 第 10 帖
6692975
 
6692975 的头像
 
 
注册会员  
  注册日期: Sep 2004
  帖子: 1,435
  精华: 5
 

将/lib/libreadline.so.5 cp到initrd解压的lib下。
cp /lib/libreadline.so.5 /mnt/disk/arch/lib

在主系统中用ldd /bin/bash可以查看bash都需要什么库文件。

缺什么cp过去什么就可以了。

才发现每个发行版的bash需要的库文件是不同的
  6692975 当前离线   回复时引用此帖
旧 05-03-11, 19:16 第 11 帖
chen1960
 
chen1960 的头像
 
 
注册会员  
  注册日期: Apr 2004
  我的住址: 福建
  帖子: 516
  精华: 1
 

感谢楼主,成功了。又学到东西了,太谢谢了。
  chen1960 当前离线   回复时引用此帖
旧 05-05-17, 03:17 第 12 帖
diony
 
diony 的头像
 
 
注册会员  
  注册日期: Jan 2005
  帖子: 2,162
  精华: 10
 

标题: 补充:bootstrap now easy


对于chroot方式安装arch的改进和补充

最近系统出现了一些莫名其妙的问题,所以决定把60G盘上的gentoo删除掉制作另一个arch系统。因为不想影响到正常的使用,所以也选择了chroot安装方式。但做了些投机取巧的工作写在这里,方便大家。
  • 目的:在现有任意linux系统(不必是arch)的基础上,采用chroot方式安装arch到一已挂载的分区上。
  • 途径:使用arch官方论坛上calavera编写的archbootstrap脚本。稍作修改。

具体操作过程:
1、准备分区
这一步不必详述。每个人都不相同。我把hda分成了4个区,分别是根目录、home、boot、data。然后将根目录挂载到/mnt/hda上。创建/mnt/hda/home、/mnt/hda/boot等文件夹,再将home、boot、data 一一挂载。

2、创建基本系统
这一步投机取巧,省了很多功夫。使用了calavera编写的archbootstrap脚本。但该脚本年代久远,有些东西需要修改。我已经改好上传,兄弟们请查看附件。
得到了archbootstrap.tar.bz2后,tar jxfv archbootstrap.tar.bz2解压之。切换到root用户。执行:
# ./archbootstrap /mnt/hda
/mnt/hda是我准备用来安装arch的分区。这条命令后面还可以跟服务器地址作为参数,但用默认的即可。
等一小段时间,执行完毕后,一个arch基本系统就已经创建好了是不是很方便?
小提示:在执行前,你也可以手动创建/mnt/hda/var/cache/pacman/pkg/目录,然后将自己的pkg拷贝进去(不推荐连接,因为下一步chroot进去连接就无效了)。

3、进行安装、配置
首先要将本地的resolv.conf拷贝一份过去,否则chroot进去后将无法连网:
# cp /etc/resolv.conf /mnt/hda/etc/
# chroot /mnt/hda /bin/bash

至此,你已经身处新的arch基本系统中。可以随意pacman -S安装任何东西了(别忘记先pacman -Sy)。
其余的设置,我就不详述了,会采用chroot方式安装arch的兄弟,相信也明白自己需要做什么。
只提醒一点:不要忘记pacman -S kernel26。或者干脆使用现有系统的kernel拷贝过去使用也一样。但不要忘记源码目录和模块儿目录。



--------------------------
我是一边改一边装的,改好的这个似乎仍然有问题,观察了一下,将第26、27行的os/i686/删掉应该就没有问题了。
上传的附件
文件类型: bz2 archbootstrap.tar.bz2 (2.3 KB, 90 次查看)







__________________
Desktop:
| Core2Duo E6550 | ECS P35T-A | 2G DDR800 X 2 DualChannel | HD4870|
640G SATA X 1
500G SATA X 2
320G SATA X 1

Laptop:
ASUS A8SC Z99S

-------------
别把别人当成猪,但愿自己不是狗。
-------------

此帖于 05-05-22 14:02 被 diony 编辑.
  diony 当前离线   回复时引用此帖
旧 05-06-22, 16:27 第 13 帖
deepwater
 
deepwater 的头像
 
 
注册会员  
  注册日期: Oct 2003
  帖子: 79
  精华: 0
 

不需要拷贝bash。arch的initrd的bin下有sh,是符号连接到那个万金油busybox上去的,所以指定用它就行了:

#chroot /tmp /bin/sh







__________________
-Grandpa,were you a hero in the war?
-No,but I served in a company of heros.
  deepwater 当前离线   回复时引用此帖
旧 05-06-29, 23:36 第 14 帖
gkp
 
gkp 的头像
 
 
注册会员  
  注册日期: Jul 2004
  我的住址: 只有一台linux电脑的亳州市
  帖子: 644
  精华: 4
 

按照楼主的方法作了,chroot后,运行/arch/setup就出现Illegal instruction
请问如何解决?







__________________
鸟*换*了~
AMD-K8-Sempron-2500+
MSI-K8M800
DDR333-256M
  gkp 当前离线   回复时引用此帖
旧 05-11-09, 16:35 第 15 帖
liulijun01
 
liulijun01 的头像
 
 
注册会员  
  注册日期: Feb 2005
  帖子: 534
  精华: 0
 

长见识拉。谢谢!!
  liulijun01 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 08:42


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2012, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2011, LinuxSir.Org