答:请参阅上面的第 7 章节。
答:请参阅上面的第 10 章节。
答:请参阅上面的第 8 章节,Alain Knaff 关于此主题的评论。据我所知,他的回答是最权威的。
答:这可能应该在文本中更好地解释,但为了暂时解答问题,我在这里给出答案。
首先,不要尝试使用rdev或ramsize命令来执行此操作,无论它们的文档如何说明。内存盘字不再决定内存盘的大小。
其次,请记住内存盘实际上是动态的;当您设置内存盘大小时,您并没有分配任何内存,您只是设置它可以增长的最大限制。不要害怕将这些设置得相当大(例如,8 甚至 16 兆字节)。RAM 空间在您需要它之前实际上不会被消耗。您可以通过以下几种方式设置这些限制。
使用ramdisk_size=NNN命令行参数。您可以手动输入此参数,也可以使用类似以下的命令append="ramdisk_size=NNN"与 LILO 一起使用。
如果您正在使用 LILO,您可以使用内核选项,例如ramdisk=8192K在lilo.conf文件中。
更改内核配置选项CONFIG_BLK_DEV_RAM_SIZE并重新编译您的内核。
答:请参阅第 11 章节。
答:由于我没有 LS-120 驱动器,以下信息是从 Dave Cinege 提供的Linux Router Project 信息中总结出来的。
LS-120 是一种 IDE 软盘驱动器。它与标准的 3.5 英寸磁盘和新的 120MB 磁盘兼容。截至 Linux v2.0.31,它已获得完全支持。要能够从中启动,您必须具有专门允许将 LS-120 视为驱动器 0 的 BIOS(而 IDE 设备通常从 80 开始)。如果您没有 BIOS 支持,您可以从 Promise Technologies 购买小型 IDE FloppyMAX 卡来克服此缺陷。
内核引导加载程序不喜欢 LS-120,并且会立即死机。此外,2m 磁盘也不喜欢它,并且无法启动。1.44MB 到 1.74MB 的磁盘可以正常工作。截至 v1.32,SYSLINUX 可以与 120MB 磁盘一起使用。除非您需要 MS-DOS 兼容性,否则最好对磁盘进行分区并使用 ext2 或 minix,而不是 SYSLINUX。
LILO 可以很好地与 120MB 磁盘配合使用。这是一个 lilo.conf 示例
boot=/dev/hda compact disk=/dev/hda bios=0 install=/floppy/boot.b map=/floppy/map image=/floppy/linux label=Linux append="load_ramdisk=1" initrd=/floppy/root.bin ramdisk=8192 |
答:最简单的方法是从您最近的 Slackware 镜像站点获取 Slackware 内核。Slackware 内核是通用内核,旨在包含尽可能多的设备的驱动程序,因此如果您有 SCSI 或 IDE 控制器,则很可能 Slackware 内核中包含其驱动程序。
转到a1目录,然后根据您拥有的控制器类型选择 IDE 或 SCSI 内核。检查所选内核的 xxxxkern.cfg 文件,以查看该内核中包含的驱动程序。如果您想要的设备在该列表中,则相应的内核应启动您的计算机。下载 xxxxkern.tgz 文件并将其复制到您的启动盘,如上面关于制作启动盘的部分所述。
然后,您必须使用命令 rdev zImage 检查内核中的根设备。如果这与您想要的根设备不同,请使用 rdev 更改它。例如,我尝试的内核设置为/dev/sda2,但我的根 SCSI 分区是/dev/sda8。要使用根磁盘,您必须使用命令 rdev zImage /dev/fd0。
如果您想知道如何设置 Slackware 根磁盘,这超出了本 HOWTO 的范围,因此我建议您查看 Linux 安装指南或获取 Slackware 发行版。请参阅本 HOWTO 中标题为“参考文献”的部分。
答:这不是真正的启动盘主题,但经常被问到。在 Linux 中,您可以运行
/sbin/lilo -u |
您还可以使用 dd 命令将 LILO 保存的备份复制到引导扇区。如果您希望这样做,请参阅 LILO 文档。
在 DOS 和 Windows 中,您可以使用 DOS 命令
FDISK /MBR |
答:如果您没有备用启动盘,可能最简单的方法是获取适用于您的磁盘控制器类型(IDE 或 SCSI)的 Slackware 内核,如上面“我如何使用 XXX 驱动程序制作启动盘?”中所述。然后,您可以使用此内核启动计算机,然后修复存在的任何损坏。
您获得的内核可能未将根设备设置为您想要的磁盘类型和分区。例如,Slackware 的通用 SCSI 内核将根设备设置为/dev/sda2,而我的根 Linux 分区恰好是/dev/sda8。在这种情况下,内核中的根设备将必须更改。
即使您只有一个内核和一些其他操作系统(例如 DOS),您仍然可以更改内核中的根设备和内存盘设置。
rdev 通过更改内核文件中固定偏移量的值来更改内核设置,因此如果您在您仍然运行的任何系统上都有可用的十六进制编辑器(例如,DOS 下的 Norton Utilities Disk Editor),您可以执行相同的操作。然后,您需要检查并在必要时更改以下偏移量处的内核中的值
HEX DEC DESCRIPTION 0x01F8 504 Low byte of RAMDISK word 0x01F9 505 High byte of RAMDISK word 0x01FC 508 Root minor device number - see below 0X01FD 509 Root major device number - see below |
内存盘字的解释在上面的第 6.3 章节中进行了描述。
主设备号和次设备号必须设置为您要挂载根文件系统的设备。一些有用的值可供选择
DEVICE MAJOR MINOR /dev/fd0 2 0 1st floppy drive /dev/hda1 3 1 partition 1 on 1st IDE drive /dev/sda1 8 1 partition 1 on 1st SCSI drive /dev/sda8 8 8 partition 8 on 1st SCSI drive |
答:由于磁介质可能会随着时间推移而退化,因此您应该保留几个救援盘的副本,以防原始磁盘无法读取。
制作任何软盘(包括可启动软盘和实用程序软盘)副本的最简单方法是使用 dd 命令将原始软盘的内容复制到硬盘驱动器上的文件中,然后使用相同的命令将文件复制回新软盘。请注意,您不需要也不应该挂载软盘,因为 dd 使用原始设备接口。
要复制原始磁盘,请输入命令
dd if=DEVICENAME of=FILENAME |
要将生成的文件复制回新软盘,请插入新软盘并输入反向命令
dd if=FILENAME of=DEVICENAME |
请注意,以上讨论假设您只有一个软盘驱动器。如果您有两个相同类型的驱动器,则可以使用类似以下的命令复制软盘
dd if=/dev/fd0 of=/dev/fd1 |
答:在无法自动检测磁盘设备的情况下,有必要向内核提供命令设备参数字符串,例如
aha152x=0x340,11,3,1 |
通过在每次系统通过 LILO 启动时在命令行上输入它。但这很无聊。
通过使用 LILO 的lock关键字使其将命令行存储为默认命令行,以便 LILO 每次启动时都使用相同的选项。
通过使用append=LILO 配置文件中的语句。请注意,参数字符串必须用引号引起来。
例如,使用上述参数字符串的示例命令行将是
zImage aha152x=0x340,11,3,1 root=/dev/sda1 lock |
这将传递设备参数字符串,并要求内核将根设备设置为/dev/sda1并保存整个命令行,以便在所有未来的启动中重复使用。
APPEND 语句的示例是
APPEND = “aha152x=0x340,11,3,1” |
请注意,参数字符串不能在命令行上用引号引起来,但必须在APPEND语句中用引号引起来。
另请注意,要使参数字符串生效,内核必须包含该磁盘类型的驱动程序。如果它不包含,则没有任何东西在侦听参数字符串,您将必须重新构建内核以包含所需的驱动程序。有关重新构建内核的详细信息,请转到/usr/src/linux并阅读 README,并阅读 Linux FAQ 和安装 HOWTO。或者,您可以获取适用于该磁盘类型的通用内核并安装它。
强烈建议读者在尝试 LILO 安装之前阅读 LILO 文档。不小心使用BOOT语句可能会损坏分区。
答:在各种实用程序中,程序名称被硬编码的情况有几种。这些情况并非到处都发生,但它们可以解释为什么即使您可以看到可执行文件在那里,但在您的系统上显然找不到它。您可以使用 strings 命令并通过 grep 管道输出,来找出给定程序是否硬编码了另一个程序的名称。
已知的硬编码示例包括
shutdown 在某些版本中硬编码了/etc/reboot,因此 reboot 必须放在/etc目录中。
init 至少给一个人带来了问题,内核无法找到 init。
要解决这些问题,请将程序移动到正确的目录,或更改配置文件(例如inittab)以指向正确的目录。如果不确定,请将程序放在与硬盘驱动器上相同的目录中,并使用相同的inittab和/etc/rc.d文件,就像它们出现在您的硬盘驱动器上一样。