条条大路通罗马 - TMTOWTDI | |
Larry Wall, Tom Christiansen & Randal L. Schwartz: Programming Perl, Sec. Ed. 1996 p. 10 |
摘自 Battery-Powered-HOWTO : “在笔记本电脑上安装和使用 Linux 通常完全没有问题,所以放手去尝试吧。与某些其他操作系统不同,Linux 仍然支持甚至在非常旧的硬件上也能良好运行,因此您可以将过时的便携式电脑安装 Linux,赋予它新的生命。”
Linux 的巨大优势之一是其众多且灵活的安装功能,我不想详细描述这些功能。相反,我尝试专注于笔记本电脑特定的方法,这些方法仅在某些情况下是必要的。
大多数当前的发行版都支持对笔记本电脑有用的安装方法,包括从 CD-ROM/DVD 安装,通过 PCMCIA 和 NFS(或者可能是 SMB)。请参阅这些发行版提供的文档以获取更多详细信息,或查看上面提到的手册和 HOWTO。
对于现代笔记本电脑,传统的 Linux 安装方法(从一张启动软盘、一张支持软盘和一组 CD-ROM 或一张 DVD)应该没有问题,如果软盘驱动器和 CD-ROM 驱动器都可用的话。但是,在某些笔记本电脑上,如果您不能同时使用软盘驱动器和 CD/DVD-ROM 驱动器,或者如果软盘驱动器仅作为 PCMCIA 设备可用(如 Toshiba Libretto 100),您可能会遇到麻烦。据 VAIO+Linux-HOWTO 中关于 SONY VAIO 的报告,一些笔记本电脑也支持完全从 CD 驱动器启动并进行安装。注意:检查 BIOS 中的 CD 启动选项,并确保您的 Linux 发行版带有可启动 CD。
某些笔记本电脑只能启动 zImage 内核。bzImage 内核将无法工作。这是 IBM™ Thinkpad 600 和 Toshiba Tecra 系列等机器的已知问题。一些发行版为这些机器或内存资源有限的机器提供特定的启动软盘,例如 Debian/GNU Linux。
较新的笔记本电脑能够从可启动的 CD/DVD-ROM 启动 Linux 发行版。这允许在没有软盘驱动器的情况下进行安装。如果 CD/DVD 驱动器仅作为 PCMCIA 设备可用,如 SONY VAIO PCG-Z600TEK,请参阅下面关于从 PCMCIA 设备安装的章节。
这是关于如何在 DOS 下从 CD-ROM 安装而无需使用启动或补充软盘的简短描述。这对于具有可更换软盘和 CD-ROM 组件(如果两者互斥)或仅作为 PCMCIA 设备提供的笔记本电脑尤其有用。我从 Installing Debian GNU/Linux 2.1 For Intel x86 - Chapter 5 Methods for Installing Debian 中获取了此方法。
从您最近的 Debian FTP 镜像获取以下文件,并将它们放入 DOS 分区上的一个目录中: resc1440.bin drv1440.bin base2_1.tgz root.bin linux install.bat 和 loadlin.exe。
启动进入 DOS(不是 Windows),无需加载任何驱动程序。为此,您必须在启动过程中在正确的时刻按下 <F8> 键。
从您放置下载文件的目录执行 install.bat。
重启系统并安装发行版的其余部分,您现在可以使用所有高级功能,例如 PCMCIA、PPP 等。
这也应该适用于其他发行版。也许您需要做一些适当的更改。
由于其占用空间小或几乎不存在,微型 Linux 特别适合在笔记本电脑上运行,特别是当您使用公司提供的运行 Windows9x/NT 的笔记本电脑时。或者为了使用另一台非 Linux 机器进行安装。有几种微型 Linux 发行版可以从一张或两张软盘启动并在 ramdisk 上运行。有关发行版列表,请参阅 附录 A 附录 A。
我尝试了以下方法,使用 muLinux ( 可在 muLinux 获取 ) 将我的 HP OmniBook 800 克隆到 COMPAQ Armada 1592DT。感谢 muLinux 的维护者 Michele Andreoli 的支持。由于 muLinux 尚不支持 PCMCIA,您可以改用 TomsRtBt。反过来,TomsRtBt 不支持 PPP,但提供 slip。注意:自 7.0 版本起,muLinux 提供了一个带有 PCMCIA 支持的附加组件。
我已经描述了如何复制已存在的分区,但也可以实现自定义安装。注意:通常您会尝试通过 NFS 实现安装,许多发行版都支持 NFS。或者,如果您的源不在 Linux 机器上,您可以尝试使用 SAMBA 的 SMB 协议,muLinux 也支持 SMB 协议。
您需要两台配备 Linux 的机器。在您要安装 Linux 的笔记本电脑(客户端/目标机器)上使用 muLinux 软盘。另一台机器(服务器/源机器)可以是常用的 Linux 机器,也可以使用 muLinux。虽然串行传输速率较低,但我使用串行零调制解调器电缆,因为它很便宜。您可以使用 PCMCIA 网卡和交叉网线或 HUB,或并行“零调制解调器”电缆和 PLIP 应用适当的方法。我使用的基本协议是 PPP,但您也可以使用 SLIP。对于数据传输,我使用了 nc。注意:这是 netcat 的缩写,某些发行版将其用作程序名。您可以改用 ftp、tftp、rsh、ssh、dd、rcp、kermit、NFS、SMB 和其他程序。如果您喜欢加密连接,可以使用 Cryptcat,它是 netcat 的轻量级版本,具有集成的传输加密功能。
基本要求是
良好的 Linux 使用知识。您必须确切知道自己在做什么,否则您可能会最终破坏以前的安装。
一根零调制解调器串行电缆。
在您的源机器上发出以下命令(注意:IP 地址、端口号、分区和 tty 只是示例!)
编辑/etc/ppp/options,它应该只包含
/dev/ttyS0 115200 passive |
对于 muLinux 3.x 版本,您甚至可以使用方便的命令 setup -f ppp 。
启动 PPP: pppd 。
配置 PPP 网络设备: ifconfig ppp0 192.168.0.1 。
添加默认路由: route add default gw 192.168.0.1 。
检查网络连接: ping 192.168.0.2,即使目标机器尚未启动。
从另一个控制台开始传输,记住 <LEFT-ALT><Fx>: cat /dev/hda2 | gzip -c | nc -l -p 5555 。
传输完成后(不再有硬盘写入),停止 ping: killall ping 。
在目标机器上发出
编辑/etc/ppp/options,它应该只包含
/dev/ttyS0 115200 passive |
对于 muLinux 版本 >= 3.x,您甚至可以使用方便的命令 setup -f ppp 。
启动 PPP: pppd 。
配置 PPP 网络设备: ifconfig ppp0 192.168.0.2 。
添加默认路由: route add default gw 192.168.0.2 。
检查网络连接,通过 ping 源机器: ping 192.168.0.1 。
切换到另一个控制台并从服务器获取数据: nc 192.168.0.1 5555 | gzip -dc >/dev/hda4 。
400 MB 可能需要大约 6 个小时,但您的结果可能会有所不同。
当传输完成时,通过 <CTL><C> 停止传输。这可以通过在目标机器上为 nc 添加 3 秒超时参数 -w 3 来避免(但我没有测试过): nc -w 3 192.168.0.1 5555 | gzip -dc >/dev/hda4
传输完成后,停止 ping: killall ping 。
编辑/etc/fstab .
编辑/etc/lilo.conf和/etc/lilo.msg并启动 lilo 。
将新的根设备设置为内核: rdev image root_device 。
您可以像使用 gzip 一样使用 bzip2 (未经测试)。
由于 rshd、sshd、ftpd 守护程序在 muLinux 中不可用,因此您必须使用 nc(也称为 netcat)构建自己的文件传输机制,如上所述。
我必须非常快速地设置 PPP 两端,否则连接会断开,我不知道为什么。
必须进行速度优化。也许这些 PPP 选项会有所帮助: asyncmap 0 或 local。
我仅在目标分区大于源分区的情况下检查过这一点。因此,请检查 dd 而不是 cat。
或者执行以下操作(未经测试):在目标机器上 cd 到根目录/并执行 nc -l -p 5555 | bzip2 -dc | tar xvf -。在源机器上 cd 到根目录/并执行 tar cvf - . | bzip2 | nc -w 3 192.168.0.2 5555。这也应该缩短操作所需的时间。因为只需要传输已分配的块。
不要 mount 目标分区。
我从 Adam Sulmicki <adam_AT_cfar.unc.edu> 处得到了这个提示:大多数但并非所有笔记本电脑中的硬盘都是可拆卸的,但这可能不是一件容易的事。您可以购买那些廉价的 2.5 英寸 IDE 转换器/适配器之一,它们允许您将此硬盘临时连接到具有 IDE 子系统的台式 PC,并像往常一样使用该 PC 安装 Linux。您可以将硬盘用作第一个 IDE 驱动器,或者用作第二个 IDE 驱动器。但随后您需要确保引导加载程序(例如 lilo)写入正确的分区。您还必须确保您使用的转换样式与您的笔记本电脑将要使用的样式相同(即 LBA 与 LARGE 与 CHS)。您可以在 Hard-Disk-Upgrade-HOWTO 中找到更多信息。您可能复制现有分区,但也可能实现自定义安装。您可以使用第二台笔记本电脑代替台式 PC,第二台笔记本电脑可能提供更好的功能,例如 CD/DVD,以便放入硬盘。
最常见的适配器格式是 2.5 英寸 IDE 适配器(并行 ATA - PATA)。据我所知,串行 ATA (SATA) 硬盘尚不适用于笔记本电脑。但是,即使没有适配器,它们也可以连接到台式 PC 中的串行 ATA 接口(至少我猜是这样,但我会在获得 SATA 设备后立即验证这一点)。一些小型超轻薄笔记本电脑配备了带有 ZIF 连接器的 1.8 英寸硬盘。这些连接器与 ATA 兼容,并且也有适用于它们的 IDE 适配器。
由于我没有配备 PCMCIA 软盘驱动器的笔记本电脑(例如 Toshiba Libretto 100),因此我无法检查此方法。请参阅 PCMCIA-HOWTO 中的“从 PCMCIA 设备启动”章节。此外,我无法检查是否可以从 PCMCIA 硬盘启动。
无论如何,当您可以从软盘启动并且笔记本电脑提供 PCMCIA 插槽时,应该可以使用不同的 PCMCIA 卡连接到另一台机器、外部 SCSI 设备、不同的外部 CD 和 ZIP 驱动器等。通常,这些方法在发行版提供的文档中进行了描述。
Sony Vaio (PCG-Z600) 配备了外部 USB 软驱和外部 CD-ROM (PCMCIA)。您可以从 CD-ROM 启动,但之后 Linux 不再识别同一个驱动器,因此您无法从中安装。如果您希望 Linux 在内核启动后识别 PCMCIA CDROM,则必须在 LILO 启动提示符处添加启动参数 linux ide2=0x180,0x360 (或 0x180,0x386?)。
我自己无法检查此方法,因为我没有这样的设备。请查看相应的 Install-From-Zip-HOWTO 。另外,我不知道 Linux 发行版或微型 Linux 对这些安装方法的支持程度如何。我猜您必须稍微摸索一下才能使其工作。
Jeremy Impson <jdimpson_AT_acm.org>:我在 Libretto 50CT 上安装了 Red Hat 6.1。它只有一个 PCMCIA 软盘驱动器。(顺便说一句,默认的 PCMCIA 软盘驱动程序对此支持不佳。我需要从一些关于 Libretto 的 Linux 网站下载一个补丁。)
然而,Linux 将从 PCMCIA 软盘驱动器启动。只是在加载内核后无法返回软盘。我的 Libretto (50CT) 只有一个 PCMCIA 插槽(后来的型号有两个插槽,或者我可以购买增强型端口复制器,它提供了另一个插槽)。因此,我无法从软盘启动,然后挂载远程文件系统。
所以我下载了 ZipSlack(Slackware 旨在从 ZIP 磁盘运行),并使用另一台 PC 将其加载到 ZIP 磁盘上。我将 ZIP 驱动器连接到 Libretto(通过随附的常规端口复制器上的并行端口),并从 PCMCIA 软盘驱动器中的 Slackware 启动盘启动。启动后,我卸下软盘驱动器,并插入和配置了网络 PCMCIA 卡。此时,内核在内存中,并且正在使用 ZIP 磁盘上的文件系统。
我对 Libretto 的硬盘进行了分区和格式化,然后将 Red Hat 6.1 安装源 ftp 到新分区之一(将成为/home当一切完成后)。这是关键:如果您没有足够的磁盘空间来存放安装文件,再加上足够的空间来实际安装操作系统,则此方法将不起作用。
我关闭了 ZipSlack 内核,并使用软盘驱动器中的 RedHat 安装盘重新启动了它。我将其指向硬盘上已有的 RH6.1 安装介质,并开始安装。
我自己曾尝试使用 MicroSolutions BackPack 并行 CD-ROM 驱动器安装 Linux。它完全受 Linux 支持,并且我在运行它时没有遇到任何重大问题。在 2.0.36 版本之前,它由自己的模块 (bpck) 支持,而在以后的版本中,它已合并到更通用的并行端口 IDE 适配器中(paride 模块,然后当然依赖于更具体的底层驱动程序,在 BackPack 的情况下仍然称为 bpck)。
在基于 RedHat 5.x 的安装中,bpck 模块在安装阶段已经可用,因此您只需在安装阶段从其他 CD-ROM 中选择 BackPack cdrom,然后为其提供更多选项(但 autoprobe 应该可以正常工作)。
在 RedHat 6.x(使用 2.2.x 内核,然后应该使用 paride)中,BackPack 支持被删除。因此,要从此类设备安装发行版,您将必须自定义启动盘(添加必要的模块),并且安装将毫无问题地完成。
Federico Pellegrin 自定义了一个 RedHat 启动盘,其中包含发行版 Linux 内核版本 (2.2.12) 支持的所有并行 CDROM 设备,该启动盘应适用于所有受支持的并行 CDROM 设备(即使他只在他的 MicroSolutions BackPack 上对其进行了测试,因为他没有其他类似的硬件)。您可以在 此处找到有关它的信息和启动盘映像。
从 RedHat 6.2 开始,发行版中包含了一个补充驱动程序磁盘,以支持 paride 设备。您只需创建驱动程序磁盘(映像文件为 paride.img,可以在images/drivers目录中找到),并按照通常的方式插入,并在安装程序询问时插入。
当然,我认为使用此类设备安装任何其他 Linux 发行版都没有问题,只要您可以在安装阶段的开始添加和配置适当的模块,但我尚未测试过任何发行版。
您应该注意并行端口使用的模式(ECP、EPP、仅输出、PS/2),因为其中一些模式可能会导致您的笔记本电脑突然冻结或导致严重的数据损坏。另一方面,某些模式会使通信速度大大降低(我在我的笔记本电脑上发现最佳选择是 PS/2,但您应该进行一些测试)。
本章由 Federico Pellegrin 提供。另请查看 CDROM-HOWTO。
我得到了 Nathan Myers <ncm_AT_cantrip.org> 的友情提供:“许多发行版都支持通过网络安装,使用 FTP、HTTP 或 NFS。笔记本电脑越来越常见只有一个 PCMCIA 插槽,该插槽已被启动软盘驱动器占用。通常,启动软盘映像既没有软盘驱动器本身的驱动程序,也没有 PCMCIA 子系统的驱动程序。因此,唯一可用的网络接口可能是并行端口。
已经证明,至少在 Red Hat 上,可以使用 PLIP 协议通过并行端口进行安装。您只需要一根 Laplink 并行电缆,在任何电脑商店都很便宜。有关设置连接的详细信息,请参阅 PLIP-HOWTO。请注意,(独特地)RedHat 安装要求 PLIP 连接的另一端配置为使用 ARP(显然是因为 RedHat 在其安装程序中使用了 DOS 驱动程序)。在主机上,要么在 NFS 上 export 您的 CD 文件系统,要么将其 mount 到 ftp 或 web 守护程序可以找到它的位置,以满足安装的需要。”
Gilles Lamiral 的 PLIP Install HOWTO 描述了如何在没有以太网卡或 CD 驱动器,但只有一个本地软盘驱动器和一个通过零调制解调器并行电缆连接的远程 NFS 服务器的计算机上安装 Linux 发行版。
如果 BIOS 支持从 USB 设备启动,则可以从此驱动器安装 Linux。除了某些旧笔记本电脑外,几乎所有配备 USB 端口的笔记本电脑都支持此功能。
首先,您必须配置 BIOS 以从 USB 设备启动。有时,可以在启动过程中使用特定的组合键(例如 <ESC>)来选择启动设备。
其次,您必须将 Linux 安装到启动介质(比如 U 盘)上,并使其可启动。有一些特殊的 Linux 发行版可用于此目的,例如:
Feather Linux 是一个 Linux 发行版,它完全从 CD 或 USB 闪存盘运行,占用空间不到 64Mb。它是 Knoppix remastered(基于 Debian/GNU Linux),并尝试包含大多数人每天在桌面上使用的软件。请参阅这些 关于在 USB 驱动器上安装 Feather Linux 的说明。
Partboot 专用于 USB 软盘驱动器,并为 Linux 笔记本电脑安装量身定制(您可能会找到调整分区大小的工具以及 PCMCIA 支持等)。
Damn Small Linux (DSL) 是一个名片大小 (50MB) 的 Live CD Linux 发行版。尽管它体积很小,但它力求拥有一个功能齐全且易于使用的桌面。
Puppy Linux 可以安装在任何地方:闪存驱动器、Live-CD、zip 磁盘、硬盘驱动器、网络模拟器。所有应用程序都在一个大约 50-70MB 的发行版中。因此,它都在 ramdisk 中运行,并且都安装在 128M usb 闪存卡中,其中一半以上留给您的数据。
在大多数带有集成网卡的现代笔记本电脑上,通过 PXE 协议进行网络安装很容易实现。当没有 CD 或 DVD 驱动器可用时,这尤其方便。
您可能会问为什么通过 VNC 协议进行笔记本电脑安装?实际上,我只知道一个这样做的理由。想象一下,您想使用键盘坏了的笔记本电脑,您可以使用远程机器的键盘来完成安装。虽然您必须执行一些按键操作才能启动 VNC 安装!您必须相应地准备源机器(有关如何操作的说明将在稍后提供)。对于最近的 SuSE 版本,发行版已经准备好了,请参阅手册了解详细信息。
如果您的内存少于 8MB 并且想通过 NFS 安装,您可能会收到消息“fork: out of memory”。要处理此问题,请使用 fdisk 创建交换分区(fdisk 应该在安装软盘上,或者使用上面描述的迷你 Linux 之一)。然后尝试再次从安装软盘启动。在配置 NFS 连接之前,切换到另一个控制台(例如,按 <ALT><F2>)并发出 swapon /dev/xxx (xxx = 交换分区)。感谢 Thomas Schmaltz。
Bruce Richardson 编写了 4MB-Laptop-HOWTO,介绍了如何在具有 4MB RAM 和 <= 200MB 硬盘的笔记本电脑上安装现代 Linux 发行版(特别是 Slackware 7.0)。另一个 HOWTO 是 L.C. Benschop 的 Getting Linux into Small Machines - HOWTO。
现在的 Macintosh PowerBook 配备了 CD/DVD 驱动器,但没有软盘驱动器,但 PPC 的 Linux 发行版支持从 CD 启动和安装,而无需任何软盘。
有时,当您在 PowerBook 上启动安装程序时,屏幕是黑色的;这可以通过点击键盘上的亮度键轻松修复(不知何故,屏幕亮度被重置为零)。
如果您有非常新的 PowerBook,则安装 CD 上的内核可能不支持它。您可以通过从下载到硬盘的最新内核启动并使用 CD 或硬盘上的 ramdisk 来解决此问题,同时仍然从 CD 加载安装包(默认)。(请参阅在线提供的 yaBoot 或 BootX 的说明,Linux/PPC 引导加载程序;yaBoot 目前在新机器上得到了更好的支持。)
它们也可以从内部硬盘上的 Macintosh (HFS) 分区启动/安装。
这部分由 Steven G. Johnson 友情提供。
有关 Linux 安装报告,请参阅 Linux 笔记本电脑调查:Apple。
如果您有一个 2.5" 到 3.5" IDE 驱动器适配器,您可以安装其中一台笔记本电脑,并使用台式计算机将此硬盘克隆到其他 99 台笔记本电脑的硬盘。您可以使用 DOS 实用程序 GHOST(与 ext2 配合使用效果很好)或 tar(如果台式机在 linux 中工作)。您只需要一个额外的启动盘,用于在每台笔记本电脑中重新安装 lilo 并更改主机名和 IP 地址。这些适配器通常非常便宜(大约 10 美元,但很难获得)。
VA SystemImager 是一种软件,可以相对容易地将 Linux 安装到大量类似的机器上。它还可以简化软件分发、配置和操作系统更新。您甚至可以从一个 Linux 发行版版本更新到另一个版本!VA SystemImager 也可以用于 Web 服务器上的内容管理。它在拥有大量相同机器的环境中最有用。一些典型的环境包括:Internet 服务器场、高性能集群、计算机实验室或所有工作站都具有相同基本硬件配置的企业桌面环境。
您可能想看看 FAI - 完全自动安装。
Replicator 是一组脚本,用于自动化将 Debian GNU/Linux 安装从一台计算机复制到另一台计算机的过程。Replicator 努力考虑到硬件(如硬盘大小、显卡)和软件配置(如分区)的差异。在初始配置之后,脚本将创建一个启动盘,允许您通过从软盘启动并回答是/否问题来完全(重新)安装 Debian 系统。
Partition Image 是一个 Linux/UNIX 实用程序,它以映像文件格式将 ext2fs(linux 标准)、ReiserFS(一种新的日志式和功能强大的文件系统)或 FAT16/32(MS-DOS 和 MS-Windows 文件系统)文件系统中的分区保存到映像文件中。映像文件可以压缩为 GZIP/BZIP2 格式以节省磁盘空间,并拆分为多个文件以复制到软盘上(例如 ZIP)。