下一页 上一页 目录

5. 安装问题故障排除

  1. Q: 在 2.0.x 系列内核中,当前已知最稳定的 RAID 补丁是什么?
    A: 截至 1997 年 9 月 18 日,是 “2.0.30 + pre-9 2.0.31 + Werner Fink 的交换补丁 + alpha RAID 补丁”。截至 1997 年 11 月,是 2.0.31 + ... !?
  2. Q: RAID 补丁无法为我干净地安装。哪里出错了?
    A: 确保 /usr/include/linux 是指向 /usr/src/linux/include/linux 的符号链接。确保新的文件 raid5.c 等已被复制到其正确的位置。有时 patch 命令不会创建新文件。尝试在 patch 上使用 -f 标志。
  3. Q: 在编译 raidtools 0.42 时,编译停止并尝试包含 <pthread.h>,但我的系统中不存在该文件。我该如何解决这个问题?
    A: raidtools-0.42 需要 linuxthreads-0.6,可从以下地址获取: ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy 或者,使用 glibc v2.0。
  4. Q: 我收到以下消息:mdrun -a /dev/md0: Invalid argument
    A: 在首次使用前,使用 mkraid 初始化 RAID 集。mkraid 通过擦除 RAID 分区来确保 RAID 阵列最初处于一致状态。此外,mkraid 将创建 RAID 超级块。
  5. Q: 我收到以下消息:mdrun -a /dev/md0: Invalid argument 设置如下:
    A: 尝试 lsmod (或者,也可以使用 cat /proc/modules) 查看 RAID 模块是否已加载。如果未加载,您可以显式地使用 modprobe raid1modprobe raid5 命令加载它们。或者,如果您正在使用自动加载器,并期望 kerneld 加载它们但它没有加载,这可能是因为您的加载器缺少加载模块的信息。编辑 /etc/conf.modules 并添加以下行
        alias md-personality-3 raid1
        alias md-personality-4 raid5
                
    
  6. Q: 在执行 mdadd -a 时,我收到错误:/dev/md0: No such file or directory。实际上,似乎任何地方都没有 /dev/md0。我现在该怎么办?
    A: 当您以 root 用户身份运行 make install 时,raid-tools 包将创建这些设备。或者,您可以执行以下操作
        cd /dev 
        ./MAKEDEV md
                
    
  7. Q: 在 /dev/md0 上创建 RAID 阵列后,我尝试挂载它并收到以下错误: mount: wrong fs type, bad option, bad superblock on /dev/md0, or too many mounted file systems。哪里出错了?
    A: 您需要在 /dev/md0 上创建文件系统才能挂载它。使用 mke2fs
  8. Q: Truxton Fulton 写道
    在我的 Linux 2.0.30 系统上,当为 RAID-1 设备执行 mkraid 时,在清除两个单独的分区期间,我在控制台上收到 "Cannot allocate free page" 错误,并在系统日志中收到 "Unable to handle kernel paging request at virtual address ..." 错误。此时,系统变得非常不可用,但似乎过一会儿会恢复。操作似乎已完成,没有其他错误,我正在成功使用我的 RAID-1 设备。但这些错误令人不安。有什么想法吗?
    A: 这是 2.0.30 内核中一个众所周知的错误。它已在 2.0.31 内核中修复;或者,回退到 2.0.29。
  9. Q: 我无法 mdrun RAID-1、RAID-4 或 RAID-5 设备。如果我尝试 mdrun 一个 mdadd 过的设备,我会收到消息 ''invalid raid superblock magic''。
    A: 确保您已运行安装过程的 mkraid 部分。
  10. Q: 当我访问 /dev/md0 时,内核会吐出大量错误,例如 md0: device not running, giving up !I/O error...。我已成功将我的设备添加到虚拟设备。
    A: 为了可用,设备必须正在运行。使用 mdrun -px /dev/md0,其中 x 对于线性是 l,对于 RAID-0 是 0,对于 RAID-1 是 1,等等。
  11. Q: 我创建了一个包含 2 个设备的线性 md-dev。cat /proc/mdstat 显示设备的总大小,但 df 仅显示第一个物理设备的大小。
    A: 您必须首次使用前 mkfs 您的新 md-dev,以便文件系统覆盖整个设备。
  12. Q: 我使用 mdcreate 设置了 /etc/mdtab,我已 mdadd, mdrunfsck 了我的两个 /dev/mdX 分区。在重启之前一切看起来都正常。一旦我重启,我在两个分区上都收到 fsck 错误:fsck.ext2: Attempt to read block from filesystem resulted in short read while trying too open /dev/md0。为什么?!我该如何修复它?!
    A: 在启动过程中,必须先启动 RAID 分区,然后才能对其进行 fsck。这必须在其中一个启动脚本中完成。对于某些发行版,fsck/etc/rc.d/rc.S 调用,对于其他发行版,从 /etc/rc.d/rc.sysinit 调用。将此文件更改为在执行 fsck -A *之前* 执行 mdadd -ar。更好的是,建议如果 mdadd 返回错误,则运行 ckraid。 如何执行此操作在 “错误恢复” 部分的第 14 个问题中进行了更详细的讨论。
  13. Q: 当我尝试运行由大于 4GB 的分区组成的阵列时,我收到消息 invalid raid superblock magic
    A: 此错误现已修复。(1997 年 9 月)确保您拥有最新的 RAID 代码。
  14. Q: 当我尝试在大于 2GB 的分区上运行 mke2fs 时,我收到消息 Warning: could not write 8 blocks in inode table starting at 2097175
    A: 这似乎是 mke2fs 的问题(1997 年 11 月)。临时的解决方法是获取 mke2fs 代码,并在第一个 #ifdef HAVE_LLSEEK 之前将 #undef HAVE_LLSEEK 添加到 e2fsprogs-1.10/lib/ext2fs/llseek.c,然后重新编译 mke2fs。
  15. Q: ckraid 当前无法读取 /etc/mdtab
    A: /etc/mdtab 中使用的 RAID0/线性配置文件格式已过时,尽管它将在一段时间内继续受支持。当前最新的配置文件目前命名为 /etc/raid1.conf 等。
  16. Q: 个性模块 (raid1.o) 没有自动加载;它们必须在 mdrun 之前手动 modprobe。如何修复此问题?
    A: 要自动加载模块,我们可以将以下内容添加到 /etc/conf.modules
        alias md-personality-3 raid1
        alias md-personality-4 raid5
                
    
  17. Q: 我 mdadd 了 13 个设备,现在我尝试 mdrun -p5 /dev/md0 并收到消息:/dev/md0: Invalid argument
    A: 软件 RAID 的默认配置是 8 个真实设备。编辑 linux/md.h,将 #define MAX_REAL=8 更改为更大的数字,然后重新构建内核。
  18. Q: 我无法在最新的 SPARCstation 5 上使用分区使 md 工作。我怀疑这与磁盘标签有关。
    A: Sun 磁盘标签位于分区的第一个 1K 中。对于 RAID-1,Sun 磁盘标签不是问题,因为 ext2fs 将跳过每个镜像上的标签。对于其他 RAID 级别(0、线性和 4/5),这似乎是一个问题;它尚未(1997 年 12 月)得到解决。

下一页 上一页 目录