>[оверквотинг удален]
>> raid'а, затем rebuild если нужно и тд и тп.
> Просто грузится ровно так же как при рабочем RAID'е не получается все
> останавливается
> trying to mount root from ufs: /dev/ar0s2a
> Enter full pathname of shell or RETURN for /bin/sh:
> Нажимаю Enter
> ELF interpreter /libexec/ld-elf.so.1 not found
> init: single user shell terminated, restarting
> И так постоянно
> Никаких команд никаких команд больше не принимаетэто уже печально?
релиз FreeBSD - под которым система на RAID'е работала?
Далее:
- загружаетесь с LiveCD, хоть от FreeBSD, хоть Frenzy
- fsck_ffs -y на то что у вас в /etc/fstab
- монтируете корень как я описывал, можно без всяких chroot
- после того как смонтировали:
# ls -la /tmp/root
# ls -la /tmp/root/lib
# ls -la /tmp/root/libexec
теперь чтобы вам было понятно, псевдо-рейды или недо-рейды или полу-hardware рейды
0,1 можно создавать из BIOS: целевой диск -> зеркало, можно прямо из FreeBSD через
atacontrol.
Недорейды - это программные рейды, в BIOS создаются метаданные которые должен
понять драйвер FreeBSD, читаем man ataraid:
The ataraid driver can read the following metadata formats:
o Adaptec HostRAID
o Highpoint V2 RocketRAID
o Highpoint V3 RocketRAID
o Intel MatrixRAID
o Integrated Technology Express (ITE)
o JMicron
o LSI Logic V2 MegaRAID
o LSI Logic V3 MegaRAID
o NVIDIA MediaShield
o Promise FastTrak
o Silicon Image Medley
o Silicon Integrated Systems (SiS)
o VIA Tech V-RAID
o FreeBSD PseudoRAID
The ataraid driver can write the following metadata formats:
o Highpoint V2 RocketRAID
o Intel MatrixRAID
o JMicron
o Promise FastTrak
o Silicon Integrated Systems (SiS)
o VIA Tech V-RAID
o FreeBSD PseudoRAID
из вышеизложенного следует что в отношении верхней группы контроллеров, драйвер
может только читать метаданные созданные через BIOS "рейда", в отношении нижней
группы контроллеров, драйвер может еще и писать метаданные, что означает что
мы можем прямо из системы управлять рейдом посредством команды atacontrol.
Итого для псевдо-рейдов:
- raid1 можно создать через BIOS
- raid1 можно создать прямо из работающей OS FreeBSD: atacontrol
управлять raid1 из работающей FreeBSD, используя atacontrol, мы можем только
нижней (2ой) группой контроллеров. Для первой: будь то создание рейда или ребилд,
только из BIOS псевдо-рейда.
Что вы можете сделать (допустим у вас в рейде два диска ad2 и ad4):
- в бывшей рабочей системе у вас в /etc/fstab -> /dev/arXsY[a-h]
ar - рейд (ad2 + ad4)
- для проверки, вместо ar, мы можем оперировать с каждым из дисков рейда после
загрузки с LiveCD или Frenzy:
вместо всех устройств в /etc/fstab -> arXsY[a-h] мы можем для проверки использовать
аналогичные ad2sY[a-h] и ad4sY[a-h], то есть если у нас, например, ar0s1a - корень,
то он же должен быть на ad2s1a и копия ad4s1a.
Если у нас зеркало развалилось, нужно выбрать самый свежий или целый из двух
дисков ad2 и ad4, предварительно их проверив:
# fsck_ffs -y /dev/ad2s1a
# fsck_ffs -y /dev/ad4s1a
верхнее для корня, тоже самое и для остальных партиций проделать, допустим что
у нас /usr == /dev/ar0s1e, значит на ad2 и ad4 она будет: ad2s1e и ad4s1e:
# fsck_ffs -y /dev/ad2s1e
# fsck_ffs -y /dev/ad4s1e
далее вы можете смонтировать ВСЕ и получить две копии для сравнения:
для первого диска:
# mkdir /tmp/root1
# mount /dev/ad2s1a /tmp/root1
# ls -la /tmp/root1 (все точки монтирования для остальных FS у нас внутри /tmp/root1)
# mount /dev/ad2s1e /tmp/root1/usr
и тд и тп
аналогично для второго:
# mkdir /tmp/root2
# mount /dev/ad4s1a /tmp/root2
# ls -la /tmp/root2 (все точки монтирования для остальных FS у нас внутри /tmp/root2)
# mount /dev/ad4s1e /tmp/root2/usr
и тд и тп
теперь проверяйте что у вас есть на ваших FS, бы потерян run-time link editor:
на первом диске:
# ls -la /tmp/root1/libexec/ld-elf.so.1
на втором:
# ls -la /tmp/root2/libexec/ld-elf.so.1
и тд.
После этого вам нужно выбрать и оперировать с наиболее полным диском, можно дополнить
FS на нем недостающими данными с другого, но после следующей операции:
- мы проверили FS на обоих дисках: fsck, смонтировали, посмотрели наличие данных,
для себя определили какой будем использовать в качестве основного, теперь еще
одна проверка:
- делаем копию оригинального fstab -> /tmp/root1/etc/fstab (на ad2)
# cp /tmp/root1/etc/fstab /tmp/root1/etc/fstab.raid
# редактор /tmp/root1/etc/fstab
меняем все ar0 на ad2 (вы с учетом ваших цифр)
- теперь все что смонтировали руками, лучше размонтировать
- перегружаемся
- вытаскиваем CD
- заходим в BIOS и задаем загрузку с ad2
- грузимся и смотрим результат, если все ok, то можно заново создать рейд:
1) через atacontrol - удобней
2) через BIOS
где ad2 будет основной диск, а ad4 зеркало
- если проблема с загрузкой с ad2, то снова fsck, монтируем уже корень с ad4 и
меняем в нем ar0 на ad4, перегружаемся, в bios, загрузка с ad4 и снова все
верхнее.
Все понятно? Если нет: lavr@unix1.jinr.ru