我有一个外置硬盘(Transcend TS500GSJ25M - 不确定是 M1、M2 还是 M3,但猜测是 M1),我想在上面安装 Gentoo。好漂亮啊简单的,使用 genkernel,尽管它编译了很多无用的垃圾,并且不编译我的硬件所需的驱动程序。使用 menuconfig,我关闭了几乎所有模块并打开了我需要的模块。
然而,今天我不得不重新编译内核以添加 FUSE 支持,并决定关闭所有不必要的功能,例如大量的特殊 SCSI 驱动程序。构建内核系统后不会挂载 root。
是的,我在使用genkernel之前就遇到过这样的问题。
是的,我通过“root=LABEL=”挂载 root,当然将“--disklabel”传递给 genkernel。
问题是我需要在内核中内置哪些模块才能以 root 身份成功挂载外部 USB 硬盘驱动器?
我猜是一些 SCSI、USB 或许还有 EFI,但它们有很多,而且不可能通过打开、编译和尝试启动来获得。
答案1
为了了解您需要哪些模块,可以使用不同的选项:
lspci -k
lsmod
(仅限使用过的人)- 查看 dmesg 或 /var/log/kern.log。内核模块消息通常以模块名称为前缀。
对我来说,USB 硬盘需要:
- USB存储
- usbhid
- ehci_hcd
当然,还有正在使用的文件系统的模块。
答案2
如果禁用太多与 SCSI 相关的模块,很可能无法再从 USB 设备启动。
尤其:
CONFIG_SCSI:
If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
any other SCSI device under Linux, say Y and make sure that you know
the name of your SCSI host adapter (the card inside your computer
that "speaks" the SCSI protocol, also called SCSI controller),
because you will be asked for it.
You also need to say Y here if you have a device which speaks
the SCSI protocol. Examples of this include the parallel port
version of the IOMEGA ZIP drive, USB storage devices, ...
read <file:Documentation/scsi/scsi.txt>.
The module will be called scsi_mod.
However, do not compile this as a module if your root file system
(the one containing the directory /) is located on a SCSI device.
和
CONFIG_BLK_DEV_SD:
If you want to use SCSI hard disks, Fibre Channel disks,
Serial ATA (SATA) or Parallel ATA (PATA) hard disks,
USB storage or
您应该在那里检查您的配置。