Next Previous Contents

## 5. Поиск неисправностей при установке

1. В: Какой текущий стабильный патч для RAID в серии ядер 2.0.x?

   > О: На 18 сентября 1997, это - "2.0.30 + pre-9 2.0.31 + Werner Fink's swapping patch + the alpha RAID patch". На Ноябрь 1997, это - 2.0.31 + ... !?

2. В: У меня не устанавливаются патчи RAID. Что не так?

   > О: Убедитесь, что `/usr/include/linux` символическая ссылка на `/usr/src/linux/include/linux`. Убедитесь, что новые файлы `raid5.c`, и т.д. скопированы в свое правильное расположение. Иногда комманда patch не создает новые файлы. Попробуйте указать флаг `-f` для `patch`.

3. В: При компиляции raidtools 0.42, компиляция останавливается на include <pthread.h>, но его нет в моей системе. Как мне это исправить?

   > О: raidtools-0.42 требует linuxthreads-0.6 с: ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy Как альтернатива - glibc v2.0.

4. В: Я получаю сообщение: `mdrun -a /dev/md0: Invalid argument`

   > О: Используйте `mkraid` для инициализации RAID перед первым использованием. `mkraid` стиранием разделов RAID гарантирует, что массив RAID изначально в согласованном состоянии. Дополнительно, `mkraid` создаст RAID суперблоки.

5. В: Я получил сообщение: `mdrun -a /dev/md0: Invalid argument`. Установки такие:
   - raid построен как модуль
   - была сделана обычная установочная последовательность ... mdcreate, mdadd, etc.
   - `cat /proc/mdstat` показывает

             Personalities :
             read_ahead not set
             md0 : inactive sda1 sdb1 6313482 blocks
             md1 : inactive
             md2 : inactive
             md3 : inactive

   - `mdrun -a` выдает сообщение об ошибке `/dev/md0: Invalid argument`

   > О: Попробуйте `lsmod` (или, `cat /proc/modules`) чтобы увидеть, загружены ли raid модули. Если нет, Вы можете загрузить их явно командой `modprobe raid1` или `modprobe raid5`. Либо, если Вы используете автозагрузчик, и ожидаете, что их загрузит `kerneld`, а он этого не делает - это, возможно, из-за того что загрузчику не хватает информации для загрузки модулей. Отредактируйте `/etc/conf.modules` и добавьте следующие строки:

   >         alias md-personality-3 raid1
   >         alias md-personality-4 raid5

6. В: При `mdadd -a` я получаю ошибку: `/dev/md0: No such file or directory`. И действительно, вроде-бы нигде нет никакого `/dev/md0`. И что мне теперь делать?

   > О: Пакет raid-tools должен создать устройства когда вы запускаете `make install` как root. Или Вы можете сделать следующее:

   >         cd /dev
   >         ./MAKEDEV md

7. В: После создания raid массива на `/dev/md0`, Я пытаюсь монтировать и получаю следующую ошибку: `mount: wrong fs type, bad option, bad superblock on /dev/md0, or too many mounted file systems`. Что не так?

   > О: Вы должны создать файловую систему на `/dev/md0` перед монтированием. Используйте `mke2fs`.

8. В: Truxton Fulton написал:

   > На моем Linux 2.0.30, при выполнении `mkraid` на RAID-1 устройстве, при очистке двух отдельных разделов, я получил на консоль сообщения об ошибках `"Cannot allocate free page"`, и `"Unable to handle kernel paging request at virtual address ..."` ошибки в системном log-е. На этот момент, система стала совершенно не готова к использованию, но кажется восстановленной после этого. Работоспособность кажется восстановленной без прочих ошибок, и я успешно использую мой RAID-1. Однако ошибки смущают. Какие идеи?

   > О: Это хорошо известная ошибка в ядре 2.0.30. Она устранена в 2.0.31 ядре; или откатитесь к 2.0.29.

9. В: Я не могу `mdrun` устройство RAID-1, RAID-4 или RAID-5. Если я пробую `mdrun` на добавленном посредством `mdadd` устройстве, я получаю сообщение ''`invalid raid superblock magic`''.

   > О: Проверьте, запускали ли Вы `mkraid` часть установочной процедуры.

10. В: Когда я обращаюсь к `/dev/md0`, ядро выплевывает кучу ошибок, таких как `md0: device not running, giving up !` и `I/O error...`. Я успешно добавил мои устройства в виртуальное устройство.

    > О: для использования, устройство должно быть запущено. Используйте `mdrun -px /dev/md0` где x = l для линейного объединения, 0 для RAID-0 или 1 для RAID-1 и т.д.

11. В: Я создал линейное соединение из 2-х дисков. `cat /proc/mdstat` показывает общий размер устройства, но `df` показывает только размер первого физического устройства.

    > О: Вы должны сделать `mkfs` на новом md-устройстве перед первым использованием, чтобы файловая система заняла все устройство.

12. В: Я установил `/etc/mdtab` используя mdcreate, я сделал `mdadd`, `mdrun` и `fsck` на двух моих разделах `/dev/mdX`. Все выглядит нормально перед перезагрузкой. Как только я перегрузился, я получаю ошибки `fsck` на обоих разделах: `fsck.ext2: Attempt to read block from filesystem resulted in short read while trying too open /dev/md0`. Почему?! Как это исправить?!

    > О: В процессе загрузки, разделы RAID должны быть запущены перед проверкой `fsck`. Это должно быть сделано в одном из следующих скриптов. В одних дистрибутивах, `fsck` вызывается из `/etc/rc.d/rc.S`, в других - из `/etc/rc.d/rc.sysinit`. Добавьте в этот файл `mdadd -ar` *перед* запуском `fsck -A`. Еще лучше, чтобы запускался `ckraid`, если `mdadd` завершается с ошибкой. Как это сделать подробно обсуждается в вопросе 14 секции ''Восстановление Ошибок''.

13. В: Я получаю сообщение `invalid raid superblock magic` когда пытаюсь запустить массив, который состоит из разделов более 4Гб.

    > О: Эта ошибка сейчас исправлена. (Сентябрь 97) Убедитесь, что у Вас свежий драйвер raid.

14. В: Я получаю сообщение `Warning: could not write 8 blocks in inode table starting at 2097175` когда пытаюсь запустить mke2fs на разделе более 2Гб.

    > О: Кажется это проблема `mke2fs` (Ноябрь 97). Временный выход - взять код mke2fs и добавить `#undef HAVE_LLSEEK` в `e2fsprogs-1.10/lib/ext2fs/llseek.c` прямо перед первым `#ifdef HAVE_LLSEEK`, затем пересобрать ядро.

15. В: `ckraid` сейчас не способен читать `/etc/mdtab`

    > О: Формат конфигурационного файла RAID0/linear используемый в `/etc/mdtab` устарел, однако он будет поддерживаться некоторое время. Сейчас обновленные конфигурационные фалы называются `/etc/raid1.conf` и т.д.

16. В: Модули (`raid1.o`) не загружаются автоматически; но они загружаться через modprobe перед mdrun. Как я могу это устранить?

    > О: Для автозагрузки модулей, мы можем добавить следующее в `/etc/conf.modules`:

    >         alias md-personality-3 raid1
    >         alias md-personality-4 raid5

17. В: Я добавил посредством `mdadd` 13 устройств, и теперь я пробую `mdrun -p5 /dev/md0` и получаю сообщение: `/dev/md0: Invalid argument`

    > О: Конфигурация по умолчанию для программного RAID - 8 физических устройств. Отредактируйте `linux/md.h` изменив `#define MAX_REAL 8` на большее число, и пересоберите ядро.

18. В: Я не могу заставить работать `md` с разделами на последнем SPARCstation 5. Я думаю, что это связано с disk-labels.

    > О: Sun disk-labels сидят в первом килобайте раздела. Для RAID-1, Sun disk-label не играют роли, так как `ext2fs` будет проскакивать метку на каждом зеркале. Для других raid уровней (0, линейного соединения и 4/5) это - проблема; (на Декабрь 97) они все еще не адресуются.

Next Previous Contents