|
原文:
http://www.gentoo.org/doc/en/altinstall.xml
GENTOO另类安装参考大全:
1。关于此文档
如果通过LIVE-CD引导安装的办法无法成功或者你不喜欢, 这个文档可以给你帮助。此文档是为了那些需要通过非一般另类安装的用户提供了后备参考方案。也希望你能提供你自己的奇特安装方案的地方, 或者你找到个更加具有“娱乐性”的安装GENTOO的方案, 别质疑, 欢迎你写信给我。
2。用Smart BootManager 来引导LIVE-CD
下载SMART BOOTMANAGER
http://btmgr.sourceforge.net/index.php3?body=download.html. LINUX源码包, 二进位文件和WINDOWS的EXE版本都可以在以上网站寻找到, 并且包含各种语言包。但是, 就目前来讲, 比较好的方法是下载二进位文件, 因为源码不会被新版的NASM所编译。
编译源码包和直接执行二进位文件, 你可以选择任意两个格式。当你要建立引导磁盘的时候还有不同的选择, 请看以下:
code:
sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
-t theme select the theme to be used, in which the theme could be:
us = English theme de = German theme
hu = Hungarian theme zh = Chinese theme
ru = Russian theme cz = Czech theme
es = Spanish theme fr = French theme
pt = Portuguese theme
-d drv set the drive that you want to install Smart BootManager on;
for Linux:
/dev/fd0 is the first floppy driver,
/dev/hda is the first IDE harddisk driver.
/dev/sda is the first SCSI harddisk driver.
for DOS:
0 is the first floppy drive
128 is the first hard drive;
-c disable CD-ROM booting feature;
-b backup_file backup the data that will be overwritten for
future uninstallation;
-u backup_file uninstall Smart BootManager, should be used alone;
-y do not ask any question or warning.
code:
# sbminst -t us -d /dev/fd0
注意:如果你的软盘不是fd0, 请更换你自己的软盘名称。
现在你可以将磁盘放入来引导LIVECD启动了, 同时记得把LIVECD放入你的光盘机, 启动电脑。
当启动完成后, 你会件到SMART BOOTMANAGER的对话窗, 选择你的CDROM后摁ENTER来启动LIVECD。当引导正常后, 你可以按照一般安装指南来进行安装了
详细关于SMART BOOTMANAGER的讯息可以参考以下网站:
http://btmgr.sourceforge.net/
3。KNOPPIX的LIVE-CD来安装GENTOO
当你编译GENTOO的时候用KNOPPIX的LIVE-CD来做引导可以提供完善的LINUX系统。当你等待BOOTSTRAP的编译时候TUX RACER 将会帮你打发时间。
从KNOPPIX的CD引导可以非常准确有效的侦测到你的硬件, 当然你可能要在添加引导选项(BOOT OPTIONS)。
KNOPPIX的LIVE-CD会默认进入KDE3。0的桌面。而进去后我第一件事情就是开启KONSOLE并且输入sudo passwd root。这样系统可以让你设置KNOPPIX的ROOT口令了。
跟着我用su切换直ROOT, 并输入“usermod -d /root -m”。 这个可以让你在/root下建立用户的家目录。如果你不这么做的话, 你会在emerging /home/root的时候看到错误讯息“/home/root: not found”, 或者其他因为这样而引起的错误。
接着我输入exit, 并且用su切换回ROOT。这样可以恢复因为usemode指令所带来的改变值。 接着用mkdir建立 /mnt/gentoo 的挂载点.
code:
# mkdir /mnt/gentoo
到现在, 你可以打开一般安装文件的第四章, 但是要注意, 当你要挂载proc系统的时候, 请按以下指令更换:
code:
# mount -o bind /proc /mnt/gentoo/proc
4。不用网络从stage1开始安装
刻录一张LIVECD:
下载GENTOO-LIVE-CD的ISO并刻录
从http://distro.ibiblio.org/pub/li ... s/gentoo/snapshots/ 或你自己喜爱的镜像点下载portage的快照。你可以将它置放在现有的分区或者直接将它刻录在CD里。
接着按照GENTOO的一般安装指南的步骤进行直到第八个步骤“chroot /mnt/gentoo”。如果你是用两张CD, 一张LIVE-CD, 一张快照的话, 记得使用cdcache功能, 这样你可以在安装的时候卸载LIVE-CD, 再挂载快照CD了。
用alt-F2开启另一个终端,我们将继续按照一般安装指南直到运行bootstrap.sh的脚本的时候。
警告:当你执行passwd的命令的时候旧的LIVE-CD会需要你在手动登入前改变口令。
(Warning: Older realeases of the livecd required you to change the password using the passwd command, before logging in manually.)
用alt-F1不需要chroot可以转回到第一个终端, 接着将第二张光碟挂载到/mnt/gento/mnt/cdrom2. 复制portage的tarball到/mnt/gentoo/usr/portage并解压缩。
code:
# umount /mnt/cdrom
# mkdir /mnt/gentoo/mnt/cdrom2
# mount /dev/cdroms/cdrom0 /mnt/gentoo/mnt/cdrom2
# cp /mnt/gentoo/mnt/cdrom2/portage-$date.tar.bz2 /mnt/gentoo/usr/portage
# cd /mnt/gentoo/usr/portage
# tar xvjpf portage-$date.tar.bz2
接着用Alt-F2在回到第二个终端。 如果现在你执行bootstrap.sh会失败, 因为现在系统还不能下载任何文件。我们将从其他地方“得到”这些文件并将他们置放在/usr/portage/distfiles(这些都会在第二个终端F2上执行)
我们需要关于stage1的软件包如下:
glibc, baselayout, texinfo, gettext, zlib, binutils, gcc, ncurses 和他们的依赖包。
注意:你的portage版本要和你的portage树吻合。
code:
(不要忘了>之前有个2)
# emerge -fp glibc baselayout texinfo gettext zlib binutils gcc ncurses 2> stage1.list
# mount -t vfat /dev/fd0 /mnt/floppy
# cp /mnt/gentoo/stage1.list /mnt/floppy
# umount /mnt/floppy
放入一张干净的磁盘到电脑。如果你自己的看stage1的清单文件, 你会看到它提供不少URL的网址用做下载。但很可惜, 不少提供的网址里不是全部都是你想要的软件包。所以去掉所有的网址, 只留下一个:
code:
(这个脚本的输出格式是依赖emerge的,所以请小心使用)
# cut -f 1 -d ' ' stage1.list > stage1.download
现在我们可以用wget来获得所有的清单上的文件
code:
# wget -N -i stage1.list
当你获得所有的文件后, 将他们复制到/mnt/gentoo/usr/portage/distfiles/, 这样你就可以执行bootstrap.sh, 当你执行到stage2 和stage3的时候, 重复刚刚wget来获得文件。
5。无光盘无软盘通过PXE引导安装方案:
装备需求:
你需要一张网卡在你的客户端,而这个客户端将用PXE协定来引导, 像很多3com的网卡一样。而且你的BIOS必须支持PXE引导。
服务端假设:
建立一个目录:第一件事情就是建立一个目录用作无盘系统的存储夹。我们可以设置为/diskless, 而里面再给每个客户端建立一个子目录。我们后面的指南就集中在用户目录的ata子目录了。
code:
# mkdir /diskless
# mkdir /diskless/eta
# mkdir /diskless/eta/boot
DHCP和TFTP的架设:用户端将通过DHCP来获得引导讯息并通过TFTP来下载所有相应的文件。现在你只需要emerge DHCP并且配置他作为基本的安装需求。接着, 在/etc/dhcp/dhcpd.conf里加上以下的源码:
注意:这里提供的是一个静态IP位置和PXE引导镜像(pxegrub)的路径给客户端. 你必须换成客户端的乙太卡的MAC位置和你置放客户端文件的目录。
code:
option option-150 code 150 = text ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}
用emerge app-admin/tftp-hpa来获得TFTP。 在/etc/conf.d/in.tftpd加入以下的源码:
code:
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
建立GRUB:我用GRUB来执行PXE的引导。你必须自己编译使得启动PXE的映像编译功能。这个非查功能容易。第一, 获得最新的GRUB源码 (emerge -f grub会下载grub的tar-ball到你的/usr/portage/distfiles). 再来复制tarball到你的tarball到/diskless并且编译成pxe的二进位文件。当二进位文件建立完毕,将他复制到diskless用户的boot目录下。接着编辑grub.lst文件。
code:
# tar zxvf grub-0.92.tar.gz
# cd grub-0.92
# ./configure –help
//在选择项里你会看到所有支持的网卡驱动。选择一个和你网卡想吻合的。这里我们用$nic
# ./configure --enable-diskless --enable-$nic
# make
# cd stage2
# cp pxegrub /diskless/eta/boot/pxegrub
# nano -w /diskless/eta/boot/grub.lst
code(grub.lst):
default 0
timeout 30
title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta
//nfsroot的选项里, Ip位置是服务端的IP而目录是diskless客户文件的所在的目录。(服务端上)
架设NFS: NFS的配置很简单。唯一你要做的就是在/etc/exports的配置文件里加上一行:
code(/etc/exports)
# nano -w /etc/exports
NFS file systems being exported. See exports(5).
/diskless/eta eta(rw,sync,no_root_squash)
更行你的hosts文件:编辑/etc/hosts 文件
code(/etc/hosts):
127.0.0.1 localhost
192.168.1.10 eta.example.com eta
192.168.1.20 sigma.example.com sigma
在服务端建立系统:
从新启动服务端, 并用GENTOO的LIVECD引导。按照一般安装指南步骤安装除了以下的地方和安装指南不同外: 当你挂载文件系统的时候, 按照以下的源码执行(hdaX是/diskless目录下的分区)。你不用在挂载其他的分区, 所有的文件都将在/diskless/eta目录里。
code(挂载分区):
# mount /dev/hda3 /mnt/gentoo
Stage的tarball和chroot: 这个例子用stage3的tarball。挂载/proc到你的diskless目录下并且chroot, 然后继续安装。接着按照一般安装指南安装一直到内核配置(编译前)
警告: 当你解压缩tarball的时候要很小心,不能中断解压缩程序。
code(解压缩tarball):
# cd /mnt/gentoo/diskless/eta/
# tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2
# mount -t proc /proc /mnt/gentoo/diskless/eta/proc
# cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
# chroot /mnt/gentoo/diskless/eta/ /bin/bash
# env-update
# source /etc/profile
内核配置: 当你开始make menuconfig的时候, 不要忘了将以下几个选项加入:
ccode(内核配置)
Your network card device support
- Under "Networking options" :
TCP/IP networking IP: kernel level autoconfiguration IP: DHCP support IP: BOOTP support
- Under "File systems --> Network File Systems" :
<*> NFS file system support Provide NFSv3 client support Root file system on NFS
接下来配置diskless目录下的/etc/fstab:
code(/etc/fstab):
# nano -w /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
注意:不要安装任何的引导装置因为你已经有一个了:pxegrub。简单的完成安装后重新启动服务端。启动你需要的服务可以让用户端引导的:DHCP,TFTPD,和NFS。
code(启动服务):
# /etc/init.d/dhcp start
# /etc/init.d/tftpd start
# /etc/init.d/nfs start
启动引导新的客户:
为了让客户端启动引导正常,你需要配置BIOS和网卡, 这样可以让PXE先引导。网卡必须配置DHCP并且通过TFTP下载GRUBPXE 映像。接着, 你应该可以看到一个黑白的GRUB启动菜单了, 而这里可以让你选择内核引导, 接着你摁ENTER。如果一切顺利的话, 内核将会通过NFS挂载根目录并且提供登入菜单。
6。在其他LINUX发行版内安装GENTOO方案:
需求:
要在你现有的LINUX发行版里安装GENTOO, 你需要安装chroot指令和一份GENTOO安装tarball或者ISO映像文件。如果你想获得更多的文件安装, 你需要有网路支持。(tarball的后缀是tbz或者tar.gz). 我是用REDHAT 7。3做为“母体”操作系统, 当然这些不重要, 我们现在开始安装!
安装概要:
我们需要首先在现有的LINUX分区下划分一个分区给GENTOO, 然后挂载并将tarball解压缩后放置里面。然后用chroot进入虚拟系统并且开始安装。当bootstrap的程序完成后, 我们就进行最后的撇之接着可以启动GENTOO系统。
如何划分分区给GENTOO呢?
根分区是被挂载在/下。我们可以用df来检查看看根分区还有多少空间剩余并且怎样在里面划分出空间给GENTOO。要注意的是划分现有的根分区不是一定要的。你也可以划分其他的分区。我会等会在来说明的。
code(文件系统的资讯):
# mount
/dev/hdb2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hdb2 4.0G 1.9G 2.4G 82% /
none 38M 0 38M 0% /dev/shm
好像上面我们看到得一样,/dev/hdb2有2。4G剩余, 挂载在/下。在我的例子里, 我会分从新分配使得我原来的根分区变成400M的剩余而拨给GENTOO 2G的空间。看上去分配得好像还不错, 因为我有很多东西要安装。
重新分配分区:
Parted is an utility supplied by the GNU foundation, an old and respectable huge project whose software you are using in this very moment. There is one tool, however, that is extremely useful for us at the moment. It's called parted, partition editor and we can get it from http://www.gnu.org/software/parted/
注意:有很多支持重新分配分区大小的软件, 如PARTITION-MAGIC, 这里我没有详细了解过, 诉以读者可以按照自己的喜好来选择分区软件。
用刚刚上面的方法查询一下文件系统类型并且确认你现有的分区是可挂载的。 如果不行, 你必须要重新删除你现有的分区, 等非配完后, 以后再安装回来。现在有个小问题, 如果我们要重新分配现有的根分区, 就必须要建立一个能够引导并且足够小的开机磁盘。当然, 如果你要重新划分的分区不是根分区并且可以卸载的话, 你可以不必照以下步骤作。下面的是我如何在我的系统下完成的:
切记:确定你现有的分区可以挂载。
Important: Make sure that the operations you want to do on your partition are supported by parted!
下载一张从http://freshmeat.net/tomsrtbt 的开机引导磁盘。请按照软件附带的度我文档制作开机引导磁盘。
code(建立引导磁盘):
# mkfs.minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912
我们现在要开是分割分区,首先要作的是执行以下的命令建立一个工具磁盘:
code(建立工具磁盘):
# mkdir /floppy; mount -t minix /dev/fd0 /floppy && export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" && ./configure && make && cp parted/parted /floppy && umount /floppy
现在你可以重新开机并且划分分区了。重新在一个较大的硬盘上划分分区大概要用上30分钟, 所以要给点耐心。重新启动后, 用tomsrtbt的引导磁盘引导, 当你登入以后, 换成刚刚完成的工具磁盘, 输入:mount /dev/hd0 /floppy来挂载。接着执行parted你就可以重新划分分区了。当划分结束, 我们就可以开始安装GENTOO。重新启动系统进入老的LINUX里,准备安装GENTOO。
code(重新划分分区)
# mount /dev/fd0 /floppy
# cd /floppy; ./parted [drive you wish to operate on]
(parted) print
Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 2953.125 primary ntfs
3 2953.125 3133.265 primary linux-swap
2 3133.266 5633.085 primary ext3
4 5633.086 9787.148 extended
5 5633.117 6633.210 logical
6 6633.242 9787.148 logical ext3
(parted) help resize
resize MINOR START END resize filesystem on partition MINOR
MINOR is the partition number used by Linux. On msdos disk labels, the
primary partitions number from 1-4, and logical partitions are 5
onwards.
START and END are in megabytes
(parted) resize 2 3133.266 4000.000
接着就可以按照一般安装指南上的进行安装了。到chrooting的时候, 请用以下指令清除你现有的环境:
code:
# env -i /usr/sbin/chroot /mnt/gentoo /bin/bash |
|