个人工具

UbuntuManual:Ubuntu 系统安装提示

来自Ubuntu中文

跳转至: 导航, 搜索
序言 Ubuntu 基础 Ubuntu 系统安装提示 Ubuntu指南
发行版升级 Ubuntu 软件包管理 Ubuntu下的 Linux 内核 Ubuntu 小技巧
Ubuntu 系统微调 网络设置 编辑器 版本控制系统
编程 GnuPG Ubuntu 技术支持 附录

第 3 章 - Ubuntu 系统安装提示

Ubuntu 的官方安装文档位于 http://doc.ubuntu.com/ubuntu/install/ ,里面包含了 amd64、hppa、i386、ia64、powerpc和sparc的安装文档。中文翻译在 http://wiki.ubuntu.org.cn/ubuntu/install/

常规 Linux 安装提示

如果你在寻找精简的 Ubuntu 安装光盘,请别忘记检查 http://archive.ubuntu.com/ubuntu/dists/{发行版}/main/installer-{架构}/current/images/netboot/。

使用最新的开发版的 Ubuntu 会增加遇到严重软件错误的风险。在机器上安装一个稳定版本的 Ubuntu 然后使用多重启动方案可有效控制风险。或者使用更安全的 chroot 技巧,参阅 chroot, 第 8.6.35 节。后者可实现同时在不同的控制台运行多种版本的 Ubuntu

硬件兼容性

Linux 兼容绝大多数 PC 硬件,而且几乎可以安装在任何系统架构上。对我而言它的安装过程和 Windwos 95/98/Me 一样简单。可兼容的硬件列表也在不断增加。

如果你有一部笔记本电脑,可以去 Linux on Laptops 查找对应品牌和型号的安装指导。

我推荐的台式机硬件通常“比较保守”:

  • 用于工作目的时最好选 SCSI 而不是 IDE,IDE/ATAPI HD 适于个人使用。
  • IDE/ATAPI CD-ROM(或 CD-RW)。
  • 最好选 PCI 而不是 ISA, 特别是网卡(NIC)。
  • 选用便宜的 NIC。Tulip for PCI、NE2000 for ISA 都不错。
  • 初学 Linux 安装时避免使用 PCMCIA (笔记本电脑)。
  • 别使用 USB 键盘、鼠标......除非你想证明自己的实力。

如果你的机器特别慢,最好把硬盘插到另一个速度快些的机器上安装。

确定 PC 硬件和芯片组

在安装过程中,可能会要你确定电脑的硬件或芯片组等。有时了解这些信息并非易事,这儿有个方法:


  • 打开机箱亲自看看。
  • 记下显卡芯片、网卡芯片、串口和 IDE 端口周围的芯片上印的数字。
  • 记下印在 PCI 和 ISA 插卡背面的名称。

在 Ubuntu 下确定 PC 硬件

在 Linux 系统中使用下列命令,可获得机器当前使用的硬件及配置的相关信息。

$ pager /proc/pci      
$ pager /proc/interrupts      
$ pager /proc/ioports      
$ pager /proc/bus/usb/devices

在安装过程中按 Alt-F2 进入控制台,可运行这些命令获得帮助。

在最初的安装结束之后,通过安装可选的软件包,比如 pciutils、usbutils 和 lshw,你就可以获得更多的系统信息。

$ lspci -v |pager      
$ lsusb -v |pager      

典型的中断用途

  • IRQ0: timer output (8254)
  • IRQ1: keyboard controller
  • IRQ2: cascade to IRQ8–IRQ15 on PC-AT
  • IRQ3: secondary serial port (io-port=0x2F8) (/dev/ttyS1)
  • IRQ4: primary serial port (io-port=0x3F8) (/dev/ttyS0)
  • IRQ5: free [sound card (SB16: io-port=0x220, DMA-low=1, DMA-high=5)]
  • IRQ6: floppy disk controller (io-port=0x3F0) (/dev/fd0, /dev/fd1)
  • IRQ7: parport (io-port=0x378) (/dev/lp0)
  • IRQ8: rtc
  • IRQ9: software interrupt (int 0x0A), redirect to IRQ2
  • IRQ10: free [network interface card (NE2000: io-port=0x300)]
  • IRQ11: free [(SB16-SCSI: io-port=0x340, SB16-IDE: io-port=0x1E8,0x3EE)]
  • IRQ12: PS/2 Mouse
  • IRQ13: free (was 80287 math coprocessor)
  • IRQ14: primary IDE controller (/dev/hda, /dev/hdb)
  • IRQ15: secondary IDE controller (/dev/hdc, /dev/hdd)

对于旧的非 PnP ISA 卡,你可能需要在 BIOS 中设定 IRQ5,IRQ10 和 IRQ11 为非 PnP 设备。

对于USB设备,它们在 /proc/bus/usb/devices 中以 Cls=nn 的形式列出:

  • Cls=00 : Unused
  • Cls=01 : Audio (speaker etc.)
  • Cls=02 : Communication (MODEM, NIC, ...)
  • Cls=03 : HID (Human Interface Device: KB, mouse, joystick)
  • Cls=07 : Printer
  • Cls=08 : Mass storage (FDD, CD/DVD drive, HDD, Flash, ...)
  • Cls=09 : Hub (USB hub)
  • Cls=255 : Vendor specific

如果设备类别(device class)不是 255,则 Linux 可支持该设备。

在其它 OS 下确定 PC 硬件

还可从其它操作系统中获取硬件信息。

安装其它商业版 Linux,当前它们在硬件侦测方面做得比 Debian 好。

安装 Windows。用鼠标右键点“我的电脑”在菜单中选属性/设备管理,可获得硬件配置信息。记下所有的资源信息如 IRQ、I/O 端口地址和 DMA。有些旧的 ISA 卡可能要在 DOS 下配置。

Lilo 神话

"Lilo 受限于 1024 柱面。" 大错特错!

Ubuntu 之后使用的新版 lilo 支持 lba32。只要主板的 BIOS 版本支持 lba32,lilo 就可以突破 1024 柱面的限制。

如果你使用的是旧版 lilo.conf,请确定在你的 lilo.conf 文件开头的某处加了一行命令指示系统读取“lba32”。参阅 /usr/share/doc/lilo/Manual.txt.gz。

GRUB

GNU Hurd 项目组提供的新的系统引导工具 grub 可使用于 Debian Woody 系统。

要编辑 GRUB 菜单,可编辑 /boot/grub/menu.lst 文件。参阅 设置 GRUB 启动参数, 第 8.1.6 节获取有关启动参数设置信息,它和 lilo 的设置方法不太一样。

==== 选择引导软盘 ====
你可以使用 bootcd 包,来制作一个可以启动的软盘,当然我们更推荐你直接使用LiveCD来作为维护系统的工具。对于最新的dapper版本,你可以直接使用Desktop CD从光盘启动来维护,或者安装系统。

==== 安装系统 ====
这方面的官方文档在  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 可满足你的需要。也不要安装其它庞大的软件包如 Tex(Potato 曾在此阶段设置它为默认安装)。参阅 应急的编辑器, 第 11.2 节了解此时安装 nano-tiny 或 elvis-tiny 的原因。
*   在每个软件包安装对话框中,回答所有的配置提问均=“y”(替换当前值)
*   exim:选第2项,因为我使用 ISP 的 SMTP 服务器发送邮件。

有关 dselect 的更多信息,参阅 dselect, 第 6.2.4 节。

==== 网络所需的主机名和 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, 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 网关服务器设置方面的信息。

用户帐号

为了让机器访问起来有一致的感觉,我的系统中开头几个帐号通常是不变的。

我首先创建的用户帐号名是“admin”(uid=100)。我通过该帐号转发所有的 root email。该帐号加入到 adm 用户组(参阅 “为什么 GNU su 命令不支持 wheel group”, 第 9.2.2 节),这个用户组为成员提供大量 root 特权的命令,通过 su 或 sudo 命令就能使用 PAM。详情参阅 添加一个用户, 第 4.1.3 节。

创建文件系统

硬盘分区

我更喜欢将不同的目录树分别装在不同的分区下,这样可以将系统崩溃造成的损失减到最小。例如:

/          == (/ + /boot + /bin + /sbin)
== 50MB+
/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 或为增长的目录树提供扩充余地。

挂载文件系统

下面的 /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           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 可以防止因退盘前未执行卸载命令而造成文件损坏,但它会降低写盘速度。

自动挂载

自动挂载的要点:

  • 加载 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”用户组。
挂载 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 就绰绰有余了。

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 启动参数。

Swap 空间

我按下面的指导原则来划分 swap 空间:

  • 每个 swap 分区均 <128MB(使用旧版2.0内核),<2GB(使用最新内核)
  • 总容量 =(机器内存大小的 1 到 2 倍)或(128MB 到 2GB 之间)
  • 将它们分散于不同的硬盘,在 /etc/fstab 中可使用 sw,pri=1 选项挂载它们。这样可确保内核以 RAID 方式使用 swap 分区,最大限度地发挥 swap 的性能。
  • 如果可能,使用硬盘中间的扇区。

尽管你不一定真的需要,但为系统设置多一些 swap 空间(128MB)总要好点,至少运行有内存漏洞的坏程序,系统会先慢下来而不是马上死机。

Bash 设置

我按自己的喜好修改 shell 启动脚本:

/etc/bash.bashrc        换成你的喜好
/etc/profile            保持发布版设定 ( \w -> \W)
/etc/skel/.bashrc       换成你的喜好
/etc/skel/.profile      换成你的喜好
/etc/skel/.bash_profile 换成你的喜好
~/.bashrc               换成你的喜好,会改变所有用户的设置
~/.profile              换成你的喜好,会改变所有用户的设置
~/.bash_profile         换成你的喜好,会改变所有用户的设置 
可以参考我提供的脚本样例。我喜欢系统看起来清清楚楚,所以将 umask 设为 002 或 022。

PATH 依次由以下配置文件设定:

/etc/login.defs  - 在 shell 之前设定 PATH
/etc/profile     (会调用 /etc/bash.bashrc)
~/.bash_profile  (会调用 ~/.bashrc) 

鼠标设置

PS/2 鼠标

对于 ATX 主板上使用 PS/2 接口的鼠标,信号通路如下:

mouse -> /dev/psaux -> gpm -> /dev/gpmdata = /dev/mouse -> X 

这里,创建指向 /dev/gpmdata 的符号链接 /dev/mouse,有助于简化配置操作。(例如,如果你决定不再使用 gpm 服务,只需在删掉 gpm 服务后,将符号链接 /dev/mouse 指向 /dev/psaux。)

信号通路使得对键盘和鼠标插拔操作,只要重启 gpm 就可以生效,不必重启 X!

处于 gpm 输出与 X 输入之间的信号通路协议有两种执行方式,“ms3”(使用 Microsoft 3-button serial mouse 协议)和“raw”(对于已连接的鼠标使用相同的协议),此处选择的协议将决定 X 配置中使用的协议。

目前 dapper 发行版并没有默认安装 gpm ,如果需要使用它,手工安装如下:

 
sudo apt-get install gpm

下面我将示范一下如何配置 Logitech 3-button(传统Unix 风格的鼠标)PS/2 鼠标:

使用 ms3 协议方式
/etc/gpm.conf             | /etc/X11/xorg.conf
=========================+======================================
device=/dev/psaux        | Section "InputDevice"
responsiveness=          |  Identifier "Configured Mouse"
repeat_type=ms3          |  Driver     "mouse"
type=autops2             |  Option     "CorePointer"
append=""                |  Option     "Device"   "/dev/mouse"
sample_rate=             |  Option     "Protocol" "IntelliMouse"
| EndSection 

如果使用这种方式,设置鼠标类型只需编辑 gpm.conf ,X 的设置将保持不变。参阅 我的样例脚本。

使用 raw 协议方式
/etc/gpm.conf            | /etc/X11/xorg.conf
=========================+======================================
device=/dev/psaux        | Section "InputDevice"
responsiveness=          |  Identifier "Configured Mouse"
repeat_type=raw          |  Driver     "mouse"
type=autops2             |  Option     "CorePointer"
append=""                |  Option     "Device"   "/dev/mouse"
sample_rate=             |  Option     "Protocol" "MouseManPlusPS/2"
| EndSection 

如果使用这种方式,设置鼠标类型可编辑 gpm.conf,同时也会改变 X 的设置。

如何设置不同的鼠标

gpm 的设备类型 autops2 可以自动检测出市面上大多数 PS/2 鼠标。不幸的是它也不是万能的,而且目前的发布版中并不包括它,这时可在 gpm.conf 中试试 ps2 或者 imps2。想看看 gpm 支持哪些类型的鼠标可输入:gpm -t help。参阅 gpm(8)。

如果使用的是 2 键 PS/2 鼠标,可选上 X 协议的 Emulate3Buttons 项。协议中 2 键鼠标和 3 键鼠标的区别在于每次按下中间键时,是自动检测还是自动模拟信号传给 gpm。

对于在 X 协议 使用 raw 协议方式, 第 3.3.1.2 节 或不使用 gpm,可使用下面的设置:

  • IntelliMouse: 串口鼠标(gpm 转换器使用“ms3”)
  • PS/2: PS/2 鼠标(通常首先试试这项)
  • IMPS/2: 任何 PS/2 鼠标(2键、3键或滚轴鼠标)
  • MouseManPlusPS/2: Logitech PS/2 鼠标
  • ...

更多信息可浏览 Mouse Support in XFree86

典型的 Microsoft 滚轴鼠标,有报导说这样设置最好:

/etc/gpm.conf            | /etc/X11/XF86Config-4
=========================+======================================
device=/dev/psaux        | Section "InputDevice"
responsiveness=          |  Identifier "Configured Mouse"
repeat_type=raw          |  Driver     "mouse"
type=autops2             |  Option     "CorePointer"
append=""                |  Option     "Device"   "/dev/mouse"
sample_rate=             |  Option     "Protocol" "IMPS/2"
|  Option     "Buttons" "5"
|  Option  "ZAxisMapping" "4 5"
| EndSection 

对于某些最新的 Toshiba 超薄笔记本,在 System-V init 脚本中设置 gpm 先于 PCMCIA 激活可防止系统锁死。听起来古怪不过这是真的。

USB 鼠标

请确定你设置了所有必须的 kernel 选项,并在编译的时候编入内核或编成模块了:

  • 在 “Input Core Support”选项下:
    • "Input core support" (CONFIG_INPUT, input.o),
    • "Mouse support" (CONFIG_INPUT_MOUSEDEV, mousedev.o),
  • 在 “USB support”选项下:
    • "Support for USB" (CONFIG_USB, usbcore.o),
    • "Preliminary USB device filesystem" (CONFIG_USB_DEVICEFS),
    • "UHCI" or "OHCI" (CONFIG_USB_UHCI || CONFIG_USB_UHCI_ALT || CONFIG_USB_OHCI, usb-uhci.o || uhci.o || usb-ohci.o),
    • "USB Human Interface Device (full HID) support" (CONFIG_USB_HID, hid.o), and
    • "HID input layer support" (CONFIG_USB_HIDINPUT)

这儿,模块的名称为小写。

如果你没使用 devfs,则需按下面的方法创建一个设备节点 /dev/input/mice:

# cd /dev
# mkdir input
# mknod input/mice c 13 63 

对于典型的滚轴 USB 鼠标,配置如下:

/etc/gpm.conf            | /etc/X11/XF86Config-4
=========================+======================================
device=/dev/input/mice   | Section "InputDevice"
responsiveness=          |  Identifier "Generic Mouse"
repeat_type=raw          |  Driver     "mouse"
type=autops2             |  Option     "SendCoreEvents" "true"
append=""                |  Option     "Device"   "/dev/input/mice"
sample_rate=             |  Option     "Protocol" "IMPS/2"
|  Option     "Buttons" "5"
|  Option  "ZAxisMapping" "4 5"
| EndSection 

更多信息可浏览 the Linux USB Project

触摸屏(Touchpad)

尽管触摸屏在笔记本电脑上默认是模拟 2 键 PS/2 鼠标的行为,仍可从 tpconfig 软件包获得对这类设备的完全操控。例如在 /etc/default/tpconfig 中设置 OPTIONS="--tapmode=0" 可屏蔽讨厌的“click by tap”行为。按如下方法设置 /etc/gpm.conf 可以控制台下使用触摸屏和 USB 外接鼠标。

device=/dev/psaux
responsiveness=
repeat_type=ms3
type=autops2
append="-M -m /dev/input/mice -t autops2"
sample_rate= 

NFS 设置

安装 NFS 要设置/etc/exports。

# apt-get install nfs-kernel-server
# echo "/ *.domainname-for-lan-hosts(rw,no_root_squash,nohide)" \
>> /etc/exports 

详情见我的样例脚本.

Samba 设置

参考资料:

以“share”方式安装 Samba 比较容易,因为安装过程会创建 WfW-type 共享驱动器。但最好使用“user”模式来配置它。

可以用 debconf 或 vi 来设置 Samba:

# dpkg-reconfigure --priority=low samba 
# vi /etc/samba/smb.conf 

详情参阅我的脚本样例.

可通过 smbpasswd 向 smbpasswd 文件添加一个新用户:

# smbpasswd -a username 

确保使用的加密密码有恰当的兼容性。

按下表中相应的值设定 os level(数字越大,服务器的优先级越高):

0:      Samba with a loose attitude (will never become a master browser)
1:      WfW 3.1, Win95, Win98, Win/Me?
16:     Win NT WS 3.51
17:     Win NT WS 4.0
32:     Win NT SVR 3.51
33:     Win NT SVR 4.0
255:    Samba with mighty power 

确认用户是共享目录所属组的成员,并且对目录赋予了执行权限。

打印机设置

传统打印方法是 lpr/lpd。新的 CUPS 系统(Common UNIX Pinting System)提供了另一方法 PDQ,详情参阅 Linux Printing HOWTO

lpr/lpd

对于 lpr/lpd 的打印缓冲池(type spoolers)(lpr、lprng 和 gnulpr),如果它们连接的是 PostScript 或 text-only 打印机(最基本的打印机)可按如下方式设置 /etc/printcap:

lp|alias:\
:sd=/var/spool/lpd/lp:\
:mx#0:\
:sh:\
:lp=/dev/lp0: 

上述各行的意思是:

  • Head line: lp – spool 名称, alias = alias
  • mx#0 – 不限最大文件尺寸
  • sh – 不打印页眉
  • lp=/dev/lp0 – 本地机印机,或 [email protected] 远程打印机

如果连接的是台 PostScript 打印机,上述设置就够用了。如果是 Windows 机器通过 Samba 打印,上述设置也适用于任何 Windows 支持的打印机(不支持双向通信)。你必须在 Windows 环境中对打印机做相应的配置。

如果你没有 PostScript 打印机,就得用 gs 安装过滤系统。有很多自动配置工具可用于配置 /etc/printcap,可选择下列任何一组:

  • gnulpr、(lpr-ppd)和 printtool— 我用这种
  • lpr 和 apsfilter
  • lpr 和 magicfilter
  • lprng 和 lprngtool
  • lprng 和 apsfilter
  • lprng 和 magicfilter

想运行 GUI 配置工具如 printtool,需要 root 权限,参阅 X 下获取 root 权限, 第 9.4.12 节。printtool 可创建打印缓冲池,它使用 gs 模拟 PostScript 打印机,所以要使用 PostScript 打印驱动来访问它们。在 Windows 端,“Apple LaserWriter”是标准件。

CUPS™

使用 aptitude 安装 Common UNIX Printing System(或CUPS™)和所有位于 "Tasks" -> "Servers" -> "Print Server". (Sarge) 下的软件包。 为了得到最佳的结果,你需要对 aptitude 进行如下的设置: "F10" -> "Options" -> "Dependency handling" -> "[X] Install Recommended packages automatically".

KDE 和 Gnome 桌面系统提供了简易的打印机设置。如果安装了 swat,你也可以用任何一种浏览器来设置。

$ mybrowser http://localhost:631 

举个例子,将你的打印机联接到可访问打印机列表中:

  • 在主页面上点击“Printers”,然后点“Add Printer”,
  • 输入用户名和密码,进入“root”,
  • 按提示添加打印机,
  • 返回“Printers”页面,点“Configure Printer”,
  • 设定打印纸尺寸、分辨率和其它参数。

更多信息可浏览 http://localhost:631/documentation.htmlhttp://www.cups.org/cups-help.html。

对于 2.4 内核,参见 并行端口支持, 第 7.2.6 节。

桌面 PC 的 CRON

Vixie cron 是计划任务默认安装的软件。 除非系统是 7×24 小时连续运行,该软件并不能够很好的工作。 对于桌面 PC, 需要在安装 cron 软件包的基础上再安装 anacron 来解决这个问题。 fcron 软件包可以作为 anacron 软件包的一个替代。

参见 日程安排(cron,at), 第 8.6.27 节 来配置 CRON。

其它主机安装提示

初始化安装完成后再安装其他软件包

到现在,你已经拥有一个小巧但功能颇强的Debian。接下来,可以安装那些较大的软件包了。

  • 运行 tasksel。参阅 安装 tasks, 第 6.2.2 节。

可按需选择:

    • End-user – X window system
    • Development – C and C++
    • Development – Python
    • Development – Tcl/Tk
    • Miscellaneous — TeX/LaTeX environment
    • 对于其他软件包,我喜欢把 tasksel 作为安装指导来用,查看 <Task Info> 了解有关任务的安装列表 然后用 dselect 来选择安装。
  • 运行 dselect。

在此,你最想做的事就是选择钟爱的编辑器和其它需要的程序。你可以同时安装 Emacs 的多个变种。参阅 dselect, 第 6.2.4 节 和 流行的编辑器, 第 11.1 节。 你也可以将某些默认的软件包替换成特定版本。

    • lynx-ssh (而不是 lynx)
    • ...
  • ...

我通常编辑 /etc/inittab 来简化关机步骤。

...
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now
... 

模块

在初始安装期间可进行设备驱动模块配置。以后还可使用 modconf 进行配置,它是基于菜单界面的工具,可用来配置那些在初始安装时未曾配置的模块或完成新内核安装后的配置工作。

所有预加载(preloading)模块的名称要加入到 /etc/modules 列表。也可以使用 lsmod 和 depmod 进行手工控制。

对于 2.4 版内核别忘了在 /etc/modules 中加上几行来处理 IP 伪装(FTP 等)。参阅 模块化的 2.4 内核, 第 7.2 节,特别是 网络功能, 第 7.2.3 节。

CD-RW 基本步骤

对于在 2.4 版内核中使用 IDE 接口的 CD-RW,编辑下列文件:

/etc/lilo.conf  (添加 append="hdc=ide-scsi ignore=hdc", 
执行 lilo 激活)
/dev/cdrom      (创建链接 # cd /dev; ln -sf scd0 cdrom)
/etc/modules    (加入 "ide-scsi"和"sg"。如果需要可再加上"sr"。) 

详情参阅 刻录机, 第 9.3 节。

多内存和关机自动断电

编辑 /etc/lilo.conf,设置启动提示参数如下,实现识别大内存(适用于 2.2 版内核)和关机自动断电(适用于 APM):

append="mem=128M apm=on apm=power-off noapic" 

执行 lilo 完成上述设置。对称多处理器内核(SMP-kernel)需要 apm=power-off,而对我那堆糟糕的 SMP 硬件而言 noapic 也是需要的。系统启动时,在启动提示符后直接输入这些参数效果也一样。参阅 其它用于启动提示符的技巧, 第 8.1.5 节。

在 2.4 版内核中,如果 APM 是作为模块编译的,可在系统启动后运行 # insmod apm power_off=1 或设置 /etc/modules:

# echo "apm power_off=1" >>/etc/modules 

还可以这样:编译新版内核时加入 ACPI 支持可达到同样的效果,而且这种方式更适合 SMP(只有较新的主板才支持 ACPI)。对于较新的主板 2.4 版内核可以直接检测到大内存。

CONFIG_PM=y
CONFIG_ACPI=y
...
CONFIG_ACPI_BUSMGR=m
CONFIG_ACPI_SYS=m 

在 /etc/modules 中按如下顺序添加参数:

ospm_busmgr
ospm_system 

或者重新编译内核,在配置时将上述内核选项均设为“y”。总之,有了 ACPI 支持就不再需要任何启动提示参数。

无法访问某些站点的怪问题

如果 内核开启 ECN,对于某些使用劣质路由器的站点,会出现无法访问的问题。新的 dapper 发行版默认关闭了 ECN,检查 ECN 状态可使用:

# cat /proc/sys/net/ipv4/tcp_ecn
... 或
# sysctl net.ipv4.tcp_ecn 

将它关闭:

# echo "0" > /proc/sys/net/ipv4/tcp_ecn
... 或
# sysctl -w net.ipv4.tcp_ecn=0 

每次启动时禁止 TCP ECN,可编辑 /etc/sysctl.conf,加上:

net.ipv4.tcp_ecn = 0 

PPP 拔号设置

安装 pppconfig 软件包,设置 PPP 拨号访问。

# apt-get install pppconfig
# pppconfig
... 按提示配置 PPP 拨号
# adduser user_name dip
... 允许 user_name 进行 PPP 拨号访问 

用户(user_name)进行 PPP 拨号访问:

$ pon ISP_name   # 开始 PPP 访问,接通你的 ISP
... 享受 Internet
$ poff ISP_name # 停止 PPP 访问,ISP_name 可选 

详情参阅 设置 PPP 接口, 第 10.2.4 节。

ADSL 用户使用 pppoeconf,来配置 PPPOE 拨号访问。

# apt-get install pppoeconf
# pppoeconf
... 按提示配置 PPPoe 拨号

/etc/ 中的其它配置文件

Ubuntu 标准安装不包含 /etc/cron.deny 文件,想添加可拷贝 /etc/at.deny。