安装 Windows。用鼠标右键点“我的电脑”在菜单中选属性/设备管理,可获得硬件配置信 息。记下所有的资源信息如IRQ、I/0端口地址和DMA。有些旧的ISA卡可能要在D0S下 配置。 31.5Lilo神话 "Lilo受限于1024柱面。”大错特错! Ubuntu之后使用的新版1ilo支持1ba32。只要主板的BI0S版本支持1ba32,1ilo就可 以突破1024柱面的限制 如果你使用的是旧版1ilo.conf,请确定在你的1ilo.conf文件开头的某处加了一行命令 指示系统读取“1ba32”。参阅/usr/ share/doc/lilo/ Manual.txt.gz 3.1.6 GRUB GNU Hurd项目组提供的新的系统引导工具grub可使用于 Debian Woody系统 <prenowiki> 要编辑GRUB菜单,可编辑/boot/grub/menu.lst文件。参阅设置GRUB启动参数,第 8.1.6节获取有关启动参数设置信息,它和1ilo的设置方法不太一样。 3.1.7选择引导软盘 你可以使用 bootcd包,来制作一个可以启动的软盘,当然我们更推荐你直接使用 LiveCD 来作为维护系统的工具。对于最新的 dapper版本,你可以直接使用 Desktop CD从光盘启动 来维护,或者安装系统 31.8安装系统 这方面的官方文档在http://doc.ubuntucom/ubuntu/install/i386中文翻译在: http://wiki.ubuntuorgcn/ubuntu/install/i386 在安装/dev/hda的mbr时,我喜欢将lilo装在诸如/dev/hda3的位置,这样做可以减 小引导信息被覆盖的风险。 下面是我在安装过程中所做的选择。 k MD5 passwords yes shadow passwords yes Install advanced"(dselect *x )and select **取消 emacs(如果它被选中了)、nvi、tex、 telnet、talk(d **选上mc、vim,nano-tiny和 elvis-tiny任选一个。 参阅 dselect,第6.2.4节。即使你是个 Emacs迷也不要在安装阶段使用它,nano可满 足你的需要。也不要安装其它庞大的软件包如Tex( Potato曾在此阶段设置它为默认安装) 参阅应急的编辑器,第11.2节了解此时安装nano-tiny或 elvis-tiny的原因。 *在每个软件包安装对话框中,回答所有的配置提问均=“y”(替换当前值) *exim:选第2项,因为我使用ISP的SMTP服务器发送邮件 有关 dselect的更多信息,参阅 dselect,第6.2.4节。 3.1.9网络所需的主机名和IP地址
21 安装 Windows。用鼠标右键点“我的电脑”在菜单中选属性/设备管理,可获得硬件配置信 息。记下所有的资源信息如 IRQ、I/O 端口地址和 DMA。有些旧的 ISA 卡可能要在 DOS 下 配置。 3.1.5 Lilo 神话 "Lilo 受限于 1024 柱面。" 大错特错! Ubuntu 之后使用的新版 lilo 支持 lba32。只要主板的 BIOS 版本支持 lba32,lilo 就可 以突破 1024 柱面的限制。 如果你使用的是旧版 lilo.conf,请确定在你的 lilo.conf 文件开头的某处加了一行命令 指示系统读取“lba32”。参阅 /usr/share/doc/lilo/Manual.txt.gz。 3.1.6 GRUB GNU Hurd 项目组提供的新的系统引导工具 grub 可使用于 Debian Woody 系统。 <pre><nowiki> 要编辑 GRUB 菜单,可编辑 /boot/grub/menu.lst 文件。参阅 设置 GRUB 启动参数, 第 8.1.6 节获取有关启动参数设置信息,它和 lilo 的设置方法不太一样。 3.1.7 选择引导软盘 你可以使用 bootcd 包,来制作一个可以启动的软盘,当然我们更推荐你直接使用 LiveCD 来作为维护系统的工具。对于最新的 dapper 版本,你可以直接使用 Desktop CD 从光盘启动 来维护,或者安装系统。 3.1.8 安装系统 这方面的官方文档在 http://doc.ubuntu.com/ubuntu/install/i386 ,中文翻译在: http://wiki.ubuntu.org.cn/ubuntu/install/i386 在安装 /dev/hda 的 mbr 时,我喜欢将 lilo 装在诸如 /dev/hda3 的位置,这样做可以减 小引导信息被覆盖的风险。 下面是我在安装过程中所做的选择。 * MD5 passwords "yes" * shadow passwords "yes" * Install "advanced" (dselect **) and select ** 取消 emacs (如果它被选中了)、nvi、tex、telnet、talk(d); ** 选上 mc、vim,nano-tiny 和 elvis-tiny 任选一个。 参阅 dselect, 第 6.2.4 节。即使你是个 Emacs 迷也不要在安装阶段使用它,nano 可满 足你的需要。也不要安装其它庞大的软件包如 T e x(Potato 曾在此阶段设置它为默认安装)。 参阅 应急的编辑器, 第 11.2 节了解此时安装 nano-tiny 或 elvis-tiny 的原因。 * 在每个软件包安装对话框中,回答所有的配置提问均=“y”(替换当前值) * exim:选第 2 项,因为我使用 ISP 的 SMTP 服务器发送邮件。 有关 dselect 的更多信息,参阅 dselect, 第 6.2.4 节。 3.1.9 网络所需的主机名和 IP 地址
LAN配置的例子( C subnet:192.168.1.0/24): <pre<nowiki> Internet 外部ISP提供POP服务(使用 fetchmail访问) Access point ISP提供DHCP服务和SMTP中继服务 Cable modem (Dialup LAN网关外部端口:eth0(IP由ISP的DHCP提供) 使用老式笔记本电脑( IBM Thinkpad,486DX250Mz,20 )MB RAM) 运行 Linux2.4内核,提供ext3文件系统支持 运行“ lpmasq”软件包(安装它的补丁、MT和 firewall) 运行“dhep- client”软件包配置eth0(覆盖DNS的设定) 运行“dhep”软件包配置ethl 运行“exim”作为 smartest(mode2) 运行“ fetchmai1”设一个较长的时间值( fallback) 运行“bind”作为高速域名服务器,在从LAN连入 Internet时 作为认证域名服务器,在从LAN中连入网中某个域时 运行“ssh”使用端口22和8080(从任何地点连接) 运行“ squid”作为缓存服务器连接 Debian包文档服务器(APT需要连接它) LAN网关内部端口:eth1(IP=192.168.1.1,固定) LAN Switch(100 base T)--+ LAN中一些固定IP客户端 LAN中一些DHCP客户端 (IP=192.168.1.2-127,固定)(IP==192.168.1.128-200,动态) 参阅网络设置,第10章了解更多网络设置方面的信息。参阅建立路由网关,第10.12 节了解更多LAN网关服务器设置方面的信息。 3.1.10用户帐号 为了让机器访问起来有一致的感觉,我的系统中开头几个帐号通常是不变的。 我首先创建的用户帐号名是“ admin,(uid=100)。我通过该帐号转发所有的 root email 该帐号加入到adm用户组(参阅“为什么 GNU sU命令不支持 wheel group”,第9.2.2 节),这个用户组为成员提供大量root特权的命令,通过su或sudo命令就能使用PAM 详情参阅添加一个用户,第4.1.3节。 3.1.11创建文件系统 3.1.11.1硬盘分区 我更喜欢将不同的目录树分别装在不同的分区下,这样可以将系统崩溃造成的损失减到最 小。例如 (+/boot +/bin +/sbin) 50MB+
22 LAN 配置的例子(C subnet: 192.168.1.0/24): <pre><nowiki> Internet | +--- 外部 ISP 提供 POP 服务(使用 fetchmail 访问) | Access point ISP 提供 DHCP 服务和 SMTP 中继服务 | : Cable modem (Dialup) | : LAN 网关外部端口: eth0(IP 由 ISP 的 DHCP 提供) 使用老式笔记本电脑(IBM Thinkpad, 486 DX2 50 MHz, 20MB RAM) 运行 Linux 2.4 内核,提供 ext3 文件系统支持 运行“ipmasq”软件包(安装它的补丁、NAT 和 firewall) 运行“dhcp-client”软件包配置 eth0(覆盖 DNS 的设定) 运行“dhcp”软件包配置 eth1 运行“exim”作为 smarthost(mode 2) 运行“fetchmail”设一个较长的时间值(fallback) 运行“bind”作为高速域名服务器,在从 LAN 连入 Internet 时 作为认证域名服务器,在从 LAN 中连入网中某个域时 运行“ssh”使用端口 22 和 8080(从任何地点连接) 运行“squid”作为缓存服务器连接 Debian 包文档服务器(APT 需要连接它) LAN 网关内部端口:eth1 (IP = 192.168.1.1,固定) | +--- LAN Switch (100 base T) ---+ | | LAN 中一些固定 IP 客户端 LAN 中一些 DHCP 客户端 (IP == 192.168.1.2-127, 固定) (IP == 192.168.1.128-200, 动态) 参阅 网络设置, 第 10 章 了解更多网络设置方面的信息。参阅 建立路由网关, 第 10.12 节 了解更多 LAN 网关服务器设置方面的信息。 3.1.10 用户帐号 为了让机器访问起来有一致的感觉,我的系统中开头几个帐号通常是不变的。 我首先创建的用户帐号名是“admin”(uid=100)。我通过该帐号转发所有的 root email。 该帐号加入到 adm 用户组(参阅 “为什么 GNU su 命令不支持 wheel group”, 第 9.2.2 节),这个用户组为成员提供大量 root 特权的命令,通过 su 或 sudo 命令就能使用 PAM。 详情参阅 添加一个用户, 第 4.1.3 节。 3.1.11 创建文件系统 3.1.11.1 硬盘分区 我更喜欢将不同的目录树分别装在不同的分区下,这样可以将系统崩溃造成的损失减到最 小。例如: / == (/ + /boot + /bin + /sbin) == 50MB+
100MB 100ME /home 100MB+ /us 700MB+ with X /usr/local == 100MB /usr目录的大小很大程度上取决于 X window应用程序和文档的数目。如果只运行控制台 终端/usr可以小到300MB,但如果你装了大量 gnome应用程序2GB-3GB也很正常。当 /usr/增长得太大,将/usr/ share/移到别的分区是最有效的解救方法。对新的 Linux2.4 内核包,/目录的大小可能要超过200MB 例如,当前我的 Internet网关服务器的硬盘使用情况如下(由df-h命令输出) Filesystem Size used avail use% mounted on 300M106M179M38%/ /dev/hda7 100M12M82M13%/home /dev/hda8 596M53M513M10%/var /dev/hda6 100M834k 1%/var/lib/cvs /dev/hda9 596M222M 40%/usr /dev/hda10 596M 130M 436M 23%/var/cache/apt/archives /dev/hall 1. 5G 204M 1. 2G 14%/var/spool/squid (有块大空间留给/var/ spool/ squid作为下载软件包时代理服务器的缓冲区。) 下面的 fdisk-1输出提供了一个分区分配方案 fdisk -1/dev/hda comment /dev/hdal 41309928+6FAT16#DOS 84 325080 83 Linux #(not used) /dev/hda3 26 317520 83 Linux Main /dev/hda4 629 3802680 5 Extended /dev/hda5 128488+82 Linux swap /dev/hda6 105808+83 Linux /dev/hda7 171105808+83 Linux /dev/hda8 172 253619888+83 Linux /dev/hda9 254 335619888+83 Linux /dev/halo 336 417619888+83 Linux /dev/hall 418 6291602688+83 Linux 里面有一个未使用的分区。留作安装第二个 Linux或为增长的目录树提供扩充余地。 3.1.11.2挂载文件系统 下面的/etc/ fstab文件可完成上述分区的挂载工作: #/etc/ fstab:静态的文件系统信息 filesystem mount type options dump pass /dev/hda3 ext2 defaults, errors=remount-ro 0 1 none swap 23
23 /tmp == 100MB+ /var == 100MB+ /home == 100MB+ /usr == 700MB+ with X /usr/local == 100MB /usr 目录的大小很大程度上取决于 X window 应用程序和文档的数目。如果只运行控制台 终端 /usr 可以小到 300MB,但如果你装了大量 Gnome 应用程序 2GB-3GB 也很正常。当 /usr/ 增长得太大,将 /usr/share/ 移到别的分区是最有效的解救方法。对新的 Linux2.4 内核包,/ 目录的大小可能要超过 200MB。 例如,当前我的 Internet 网关服务器的硬盘使用情况如下(由 df -h 命令输出): Filesystem Size Used Avail Use% Mounted on /dev/hda3 300M 106M 179M 38% / /dev/hda7 100M 12M 82M 13% /home /dev/hda8 596M 53M 513M 10% /var /dev/hda6 100M 834k 94M 1% /var/lib/cvs /dev/hda9 596M 222M 343M 40% /usr /dev/hda10 596M 130M 436M 23% /var/cache/apt/archives /dev/hda11 1.5G 204M 1.2G 14% /var/spool/squid (有块大空间留给 /var/spool/squid 作为下载软件包时代理服务器的缓冲区。) 下面的 fdisk -l 输出提供了一个分区分配方案: # fdisk -l /dev/hda # comment /dev/hda1 1 41 309928+ 6 FAT16 # DOS /dev/hda2 42 84 325080 83 Linux # (not used) /dev/hda3 * 85 126 317520 83 Linux # Main /dev/hda4 127 629 3802680 5 Extended /dev/hda5 127 143 128488+ 82 Linux swap /dev/hda6 144 157 105808+ 83 Linux /dev/hda7 158 171 105808+ 83 Linux /dev/hda8 172 253 619888+ 83 Linux /dev/hda9 254 335 619888+ 83 Linux /dev/hda10 336 417 619888+ 83 Linux /dev/hda11 418 629 1602688+ 83 Linux 里面有一个未使用的分区。留作安装第二个 Linux 或为增长的目录树提供扩充余地。 3.1.11.2 挂载文件系统 下面的 /etc/fstab 文件可完成上述分区的挂载工作: # /etc/fstab: 静态的文件系统信息。 # # filesystem mount point type options dump pass /dev/hda3 / ext2 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0
/proc proc defaults oppy auto defaults, user, noauto 0 /dev/cdrom /cdrom iso9660 defaults. ro, user, noauto0 0 #各分区保持独立 /dev/hda7 /home ext2 defaults /dev/hda8 t2 defaults /dev/hda6 /var/lib/cvs ext2 defaults # noatime会提高读取文件时的访问速度 /dev/hda9 usr ext2 defaults, noatime / dev/hda10 /var/cache/apt/archives ext2 default #为代理缓存设置的大分区 /dev/hall /var/spool/squid ext2 rw #备份、可启动、D0S /dev/hdal /mnt/dos vfat rw. nodulo 00 #作为备份用的可启动的 Linux系统(未设置) /dev/hda2 /mnt/linux ext2 rw #nfs挂载点 mickey /mnt/mickey nfs ro, noauto, intr goofy /mnt/goofy nfs ro, noauto, intr minnie: //mnt/minnie smbfs ro, soft, intr, credentials=(filename)0 2 对于NFS,我使用 noauto、intr以及默认的hard项。如果有死连接,挂载进程可能会死 掉,可以使用Ctr1-C恢复。 对于使用 Samba连接的 Windows机器( smbfs),rw,auto,soft,intr是个好方案,参阅 Samba设置,第3.5节。 对于软驱,使用 noauto,rw,syne,user,exec可以防止因退盘前未执行卸载命令而造成文件 损坏,但它会降低写盘速度。 3.1.11.3自动挂载 自动挂载的要点: 加载vfat模块,从而/etc/auto.misc可使用- fstype=auto参数: #在试图访问软驱之前 modprobe vfa 或者使这个设置自动完成 echo" vfat" >>/etc/modules 重启系统。 设置/etc/auto.misc如下 floppy -fstype=auto, sync, nodev, nosuid, gid=100, umask=000: /dev/fd0 此 处gid=100表示“ users 在/home/user中创建链接文件 cdrom和 floppy,分别指向 /var/autofs/misc/cdrom Fn /var/autofs/misc/floppy
24 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0 # # 各分区保持独立 /dev/hda7 /home ext2 defaults 0 2 /dev/hda8 /var ext2 defaults 0 2 /dev/hda6 /var/lib/cvs ext2 defaults 0 2 # noatime 会提高读取文件时的访问速度 /dev/hda9 /usr ext2 defaults,noatime 0 2 /dev/hda10 /var/cache/apt/archives ext2 defaults 0 2 # 为代理缓存设置的大分区 /dev/hda11 /var/spool/squid ext2 rw 0 2 # 备份、可启动、DOS /dev/hda1 /mnt/dos vfat rw,noauto 0 0 # 作为备份用的可启动的 Linux 系统(未设置) /dev/hda2 /mnt/linux ext2 rw,noauto 0 0 # # nfs 挂载点 mickey:/ /mnt/mickey nfs ro,noauto,intr 0 0 goofy:/ /mnt/goofy nfs ro,noauto,intr 0 0 # minnie:/ /mnt/minnie smbfs ro,soft,intr,credentials={filename} 0 2 对于 NFS,我使用 noauto、intr 以及默认的 hard 项。如果有死连接,挂载进程可能会死 掉,可以使用 Ctrl-C 恢复。 对于使用 Samba 连接的 Windows 机器(smbfs), rw,auto,soft,intr 是个好方案,参阅 Samba 设置, 第 3.5 节。 对于软驱,使用 noauto,rw,sync,user,exec 可以防止因退盘前未执行卸载命令而造成文件 损坏,但它会降低写盘速度。 3.1.11.3 自动挂载 自动挂载的要点: · 加载 vfat 模块,从而 /etc/auto.misc 可使用 -fstype=auto 参数: # 在试图访问软驱之前 # modprobe vfat ... 或者使这个设置自动完成, # echo "vfat" >> /etc/modules ... 重启系统。 · 设置 /etc/auto.misc 如下: floppy -fstype=auto,sync,nodev,nosuid,gid=100,umask=000 :/dev/fd0 ... 此 处 gid=100 表示 “users”。 · 在 /home/user 中创建链接文件 cdrom 和 floppy ,分别指向 /var/autofs/misc/cdrom 和 /var/autofs/misc/floppy
将user加入“ users”用户组 3.1.11.4挂载NFS 外部 Linux nes服务器( goofy)处于防火墙( gateway)之后。在我的LAN内部,安全策 略非常宽松,因为只有我自己一个用户。为了访问NFS,NFS服务器端要按如下方式加上 /etc/exports: /etc/exports: the access control list for filesystems which may be exported to NFS clients. See exports(5) (rw, no root squash) 除安装和激活NFS服务器及客户机的软件包外,这一步对激活NFS服务器也是必要的。 为了简洁明了,我通常创建一个单独的2GB分区,用它进行实验或玩玩别的 Linux系统。 我有选择的共享了两个系统的swap和/tmp分区。多分区方案很难满足这种要求。如果只 想装一个运行简单控制台模式的系统,分区留500MB就绰绰有余了 3.1.12DRAM内存指导 下列是有关DRAM的简单指导 Linux内核运行的最低配置。 控制台系统运行的最低配置。 32MB:简单Ⅹ系统运行的最低配置。 6AMB: GNOME/KDE系统运行最低配置。 128MB:流畅运行 GNOME/KDE 256B:如果你银子充裕干嘛不呢?DRAM很便宜了。 使用启动选项mem=4m(或1 ilo append="mem=4m")可以看看只用AMB内存时系统如何运 行。如果机器的BI0S比较旧且内存数大于6MB启动时就得加1i1o启动参数。 3.1.13Swap空间 我按下面的指导原则来划分sWap空间: ·每个swap分区均<128MB(使用旧版2.0内核),<2GB(使用最新内核) 总容量=(机器内存大小的1到2倍)或(128MB到2GB之间) 将它们分散于不同的硬盘,在/etc/ fstab中可使用sw,pri=1选项挂载它们。这 样可确保内核以RAID方式使用swap分区,最大限度地发挥swap的性能 如果可能,使用硬盘中间的扇区 尽管你不一定真的需要,但为系统设置多一些swap空间(128MB)总要好点,至少运行有 内存漏洞的坏程序,系统会先慢下来而不是马上死机。 3.2Bash设置 我按自己的喜好修改shel启动脚本 /etc/bash. bashrc 换成你的喜好 /etc/profile 保持发布版设定(W->W)
25 · 将 user 加入“users”用户组。 3.1.11.4 挂载 NFS 外部 Linux NFS 服务器(goofy)处于防火墙(gateway)之后。在我的 LAN 内部,安全策 略非常宽松,因为只有我自己一个用户。为了访问 NFS,NFS 服务器端要按如下方式加上 /etc/exports: # /etc/exports: the access control list for filesystems which may be # exported to NFS clients. See exports(5). / (rw,no_root_squash) 除安装和激活 NFS 服务器及客户机的软件包外,这一步对激活 NFS 服务器也是必要的。 为了简洁明了,我通常创建一个单独的 2GB 分区,用它进行实验或玩玩别的 Linux 系 统 。 我有选择的共享了两个系统的 swap 和 /tmp 分区。多分区方案很难满足这种要求。如果只 想装一个运行简单控制台模式的系统,分区留 500MB 就绰绰有余了。 3.1.12 DRAM 内存指导 下列是有关 DRAM 的简单指导。 4MB: Linux 内核运行的最低配置。 16MB: 控制台系统运行的最低配置。 32MB: 简单 X 系统运行的最低配置。 64MB: GNOME/KDE 系统运行最低配置。 128MB: 流畅运行 GNOME/KDE。 256MB: 如果你银子充裕干嘛不呢?DRAM 很便宜了。 使用启动选项 mem=4m(或 lilo append="mem=4m")可以看看只用 4MB 内存时系统如何运 行。如果机器的 BIOS 比较旧且内存数大于 64MB 启动时就得加 lilo 启动参数。 3.1.13 Swap 空间 我按下面的指导原则来划分 swap 空间: · 每个 swap 分区均 <128MB(使用旧版 2.0 内核),<2GB(使用最新内核) · 总容量 =(机器内存大小的 1 到 2 倍)或(128MB 到 2GB 之间) · 将它们分散于不同的硬盘,在 /etc/fstab 中可使用 sw,pri=1 选项挂载它们。这 样可确保内核以 RAID 方式使用 swap 分区,最大限度地发挥 swap 的性能。 · 如果可能,使用硬盘中间的扇区。 尽管你不一定真的需要,但为系统设置多一些 swap 空间(128MB)总要好点,至少运行有 内存漏洞的坏程序,系统会先慢下来而不是马上死机。 3.2 Bash 设置 我按自己的喜好修改 shell 启动脚本: /etc/bash.bashrc 换成你的喜好 /etc/profile 保持发布版设定 ( \w -> \W)