>>[оверквотинг удален]
>>> никто на вас не злиться, но и голова человеку дана не только чтобы кушать, без обид.
Вам было написано, выполнить такие ... команды: вывод от выполнения команд - сюда.
Вам было написано, проблема может заключать в gptboot и проверках geom.
Смысл:
1) в старых релизах основным был класс GEOM_MBR с соответствующими проверками при загрузке
2) в более новых релизах FreeBSD, основным классом стал GEOM_GPT с другими проверками,
отличными от п1
смысл, GPT - Guid Partition Table, имеет альтернативную копию в конце диска и
при загрузке идет проверка на наличие альтернативной копии таблицы GPT и ее восстановление
Как это влияет на GEOM - очень просто, большинство используемых классов geom:
gmirror, gstripe, gconcat и тд и тп, пишут свои МЕТАДАННЫЕ в ПОСЛЕДНИЙ СЕКТОР провайдера.
Что будет, если в качестве провайдеров у нас выступают сырые(целые) диски: adX, daX?
Незадумываясь о GPT и классе GEOM_GPT, мы по старинке используем fdisk, с помощью
которого оформляем MBR и нам фиолетово на таблицу GPT и что при загрузке может
проверяться ее альтернативная копия в конце диска (33 блока в начале и их копия 33 в конце).
После чего мы спокойно создаем зеркало ЦЕЛЫХ дисков используя gmirror, например:
# gmirror label gm0 adX adY
в итоге у нас метаданные будут записаны в последний сектор провайдеров adX и adY,
теперь подумаем ЧТО БУДЕТ при загрузке, неважно что мы НЕ ИСПОЛЬЗОВАЛИ gpart для создания
GPT.
Вот Вам вопрос - что будет?
Еще ньюанс:
- у вас уже размеченный диск ad4 с работающей системой,
почему вам предлагают только создать gm0 на базе одного диска и перезагрузиться?
таких вопросов достаточно, если вы суть не будете понимать, смысла в созданном
Вами рейде будет НУЛЬ.
Хоть что-то теперь понятно? Понятно почему Вас нудно и упорно просят вывод ?
Судя по всему, метаданные на диске ad4 затираются, в результате чего имеем то что
имеем:
# gmirror label gm0 ad4
# reboot
и после загрузки имеем отсутствующее зеркало из-за затертых метаданных.
Значит нужно делать иначе:
- диск ad4 - рабочий и содержит уже установленную и настроенную систему, его не
трогаем!
- диск ad6 пустой, вот его и используем для НОВОГО ВАРИАНТА создания зеркала
1. очищаем ad6 на всякий случай
# dd if=/dev/zero of=/dev/ad6 bs=1m count=1
# dd if=/dev/zero of=/dev/ad6 (остальное возьмите из предыдущих моих постов - bs и count
- очистка последних секторов)
2. загружаем модуль geom_mirror
# gmirror load
3. создаем зеркало используя диск ad6 (ad4 с системой и данными не трогаем)
# gmirror label gm0 /dev/ad6
4. размечаем gm0 (не ad6, а вновь созданное зеркало, чтобы последний сектор не затереть)
# gmirror list
# gmirror status
предварительно выгружаем модуль geom_mirror:
# gmirror unload
загружаем снова
# gmirror load
(зачем, для того чтобы в /dev появился /dev/mirror)
размечаем:
# dd if=/dev/zero of=/dev/mirror/gm0 bs=1m count=1
# fdisk -BI /dev/mirror/gm0
# dd if=/dev/zero of=/dev/mirror/gm0s1 bs=1m count=1
# bsdlabel -w -B /dev/mirror/gm0s1
# bsdlabel -e /dev/mirror/gm0s1
в другом окне открывает man bsdlabel чтобы создать таблицу разделов:
siaze offset
------------------------------
a: XG 16
c: ... ... (неважно)
теперь руками создаете нужное вам количество партиций, как на ad4, но общий размер
будет на 1сектор меньше вроде, итого создаете:
d: размер в GB *
e: размер в GB *
и тд и тп, последний раздел будет * *
формат простой:
a: размерG 16 (* - означает что bsdlabel сам произведет пересчет смещений)
b: размерG * swap
c: не трогаем
d: размерG *
e: размерG *
...
выходим и смотрим что получилось, если нужно снова вызываем bsdlabel -e и правим
как надо:
# bsdlabel /dev/mirror/gm0s1 (без опций покажет разбиваку)
если все ok, в /dev/mirror появятся партиции: gm0s1a, gm0s1b, gm0s1d, gm0s1e...
Теперь создаем FS:
# newfs /dev/mirror/gm0s1a (для rootfs никаких SU и журналов)
# newfs -U /dev/mirror/gm0s1d
Все, FS на зеркале есть, теперь нужно данные с ad4 сдампить на зеркало
# mount /dev/mirror/gm0s1 /mnt
# cd /mnt (перешли в /mnt - корень на зеркале)
# dump -0auLf - / | restore -rf -
сдампили корень
# теперь у нас в /mnt появилась структура
# ls -la /mnt
- теперь нужно смонтировать /dev/mirror/gm0s1[буква] в соответствующие
/mnt/tmp (если у вас tmp как FS), в /mnt/usr, /mnt/var и тд и тп
ну а затем dump|restore с ad4
# cd /mnt/usr
# dump -0auLf - /usr | restore -rf -
# cd /mnt/var
# dump -0auLf - /var | restore -rf -
и тд и тп
- проверяем чтобы в /mnt/boot/loader.conf была загрузка geom_mirror
- теперь редактируем /mnt/etc/fstab и меняем все на /dev/mirror/gm0...
правильней навесить лейблы:
нижний пункт лучше выполнять до mount в /mnt (см выше)
# glabel label swap /dev/mirror/gm0s1b
# tunefs -L root /dev/mirror/gm0s1a (tunefs использовать при размонтированных
/dev/mirror/gm0s1?)
в пункте выше описано два варианта для /mnt/etc/fstab, один традиционный,
второй - использование лейблов, которые необходимо было создать выше,
когда мы использовали newfs для устройств /dev/mirror/gm0s1?
например: newfs -L root /dev/mirror/gm0s1a (и тд и тп)
Все, осталось перезагрузиться (вероятно в BIOS нужно будет задать загрузку
в ad6)
a) Загрузка должна пройти с зеркала - все ok
b) даже если при загрузке вывавлись
в mountroot> - у нас должны быть реальные устройства:
mirror/gm0s1a и тд и тп:
mountroot> ufs:/dev/mirror/gm0s1a
загрузились в single user mode, после чего посмотрели /etc/fstab - если проблемы,
делаем следующее:
# fsck_ffs -y /dev/mirror/gm0s1a
# mount -w /dev/mirror/gm0s1a /
# fsck_ffs -y /dev/mirror/gm0s1d
и тд и тп
если нужно, снова правим /etc/fstab под /dev/mirror/gm0...
теперь, после успешного a) или b)
# gmirror list
# gmirror status
# gmirror insert gm0 ad4
и ждем когда завершится синхронизация:
# gmirror status
после завершения - shutdown -r now - наслаждаемся зеркалом
Надеюсь ничего не забыл, что пропустил - для самостоятельного действия