手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>操作系统>Linux>列表

The Linux Bootdisk HOWTO 中译版

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


% file /lib/libc.so.4.7.2 /lib/libc.so.5.4.33 /lib/libc-2.1.1.so
/lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped
/lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped
/lib/libc-2.1.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped

QMAGIC 指出 4.7.2 版是给 A.OUT 函式库使用,而 ELF 指出 5.4.33 以及 2.1.1 版是给 ELF 使用。
请 copy 你所需要的指定 loader(s) 到你所建立的 root filesystem 。针对所包括的二进位档,函式库与 loaders 应该被 仔细地检查 。如果 kernel 不能载入所需的函式库,那麽 kernel 就会在没有错误讯息的情况下停止运作。


4.4 对 PAM 与 NSS 的提供 -- Providing for PAM and NSS

你的系统可能会需要动态地载入未被 ldd 所见的函式库。如果你没有提供函式库给这些项目,那麽你会在登录 (log in) 或使用你的 bootdisk 时遭遇到困难。


PAM (Pluggable Authentication Modules)

如果你的系统使用 PAM (Pluggable Authentication Modules) ,那麽你必须在你的 bootdisk上为 PAM 做一些预备。简而言之, PAM 是一种复杂精密的模组化方法,针对使用者认证以及控制使用者对服务的存取。一个决定你的系统是否使用 PAM 的简单方法,是对你的 login 可执行档执行 ldd ;如果输出包括 libpam.so ,你就需要 PAM 。

幸运地,安全性通常并非 bootdisk 所关心的议题,因为任何对机器有实际存取权的人,通常能做任何他们无论如何想做的事。因此,你可以有效地关闭 PAM ,只要在你的 root filesystem 造出一个简单的 /etc/pam.conf 档,这个档看起来像这样:



--------------------------------------------------------------------------------

OTHER auth optional /lib/security/pam_permit.so
OTHER account optional /lib/security/pam_permit.so
OTHER password optional /lib/security/pam_permit.so
OTHER session optional /lib/security/pam_permit.so


--------------------------------------------------------------------------------

请记得也 copy /lib/security/pam_permit.so 这个档到你的 root filesystem 。这个函式库只有大约 8K ,因此它只占用极小量的 overhead 。

请记得这个组态设定允许任何人对这台机器上的档案以及服务有完整的存取权。如果你因某种理由而在乎你 bootdisk 的安全性,那麽你就必须 copy 一些或是全部你硬碟的 PAM setup 到你的 root filesystem 。请确定曾仔细地读过 PAM 文件,并且 copy 任何在 /lib/security 中所需要的函式库到你的 root filesystem 上。

你同时必须包含 /lib/libpam.so 到你的 bootdisk 上。但是你已知这件事,因为你已对 /bin/login 执行过 ldd ,这动作显示了其相依性。


NSS (Name Service Switch)

如果你正使用 glibc (aka libc6) ,你就必须为名称服务 (name switch) 进行预备,否则你会无法 log in 。 /etc/nsswitch.conf 这个档案控制资料库对各式服务之搜寻 (lookups) 。如果你并不打算从网路上存取服务 (比如说: DNS或 NIS 搜寻),那麽你只需要准备一个简单的 nsswitch.conf 档,这个档案看起来像这样:



--------------------------------------------------------------------------------

passwd: files
shadow: files
group: files
hosts: files
services: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files
bootparams: files
automount: files
aliases: files
netgroup: files
publickey: files


--------------------------------------------------------------------------------

这样就指定每一项服务只被 local files 提供。你同时需要包括 /lib/libnss_files.so.X ,在此 X 是 1 的话是指 glibc 2.0 ,而 2 的话是指 glibc 2.1 。这个函式库将被以动态方式载入以处理档案搜寻。

如果你打算从你的 bootdisk 存取网路,那麽你会想要制作一个更精巧复杂的 nsswitch.conf 档。细节请参考 nsswitch man page。最後,请记得你必须为你所指定的每一项 服务 (service) ,把 /lib/libnss_service.so.1 档放入 bootdisk 中。


4.5 模组 -- Modules

如果你有一个模组化的 kernel ,你必须考量在开机後,你想要从你的 bootdisk 上载入哪一种模组。你可能会想要包括 ftape 与 zftape 模组 (如果你的备份磁带是floppy tape),以及给 SCSI 设备用的模组 (如果你有 SCSI 设备),也可能是 PPP 或 SLIP 支援的模组 (如果你在紧急情况下想要存取网路)。

这些模组可能会被放在 /lib/modules 。你同时也应该包括 insmod, rmmod 与 lsmod 。根据你是否想要自动地载入模组,你可能也要包括 modprobe, depmod 与 swapout 。如果你使用 kerneld,请与 /etc/conf.modules 一起包括进来。

然而,使用模组的主要优点在於你可以把非关键 (non-critical)模组移到 utility disk 上,在需要用到时才载入,这样在你的 root disk 上会使用比较少的空间。如果你要处理许多不同的设备,这个方法比建立一个内建支援许多设备的巨大 kernel 来得好。

请注意,为了启动 (boot) 一个压缩的 ext2 filesystem ,你必须有 ramdisk 与内建 ext2 支援。 它们不能够以模组的方式被提供。


4.6 一些最後的细节 -- Some final details

某些系统程式,诸如 login ,当 /var/run/utmp 档与 /var/log 目录不存在时,会发出警告。所以:


mkdir -p /mnt/var/{log,run{
touch /mnt/var/run/utmp

最後,在你设定 (set up) 完所有你所需的函式库後,执行 ldconfig 以在 root filesystem上重新制作 (remake) /etc/ld.so.cache 。这个 cache 会告诉 loader 到哪里找到函式库。要重新制作 ld.so.cache,请下达以下指令:

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!