>>>>
> догадался подставить /boot из 9.2 - завелось... теперь важный вопрос как сделать
> downgrade.. так как мир и ядро собирал и инсталировал 9.1 ..
> теперь пол-системы не работает как надо) sorry, но Вы пытаетесь через одно место все сделать, почему-то?!
допустим:
1) дано: kernel 9.2, system 9.1
что в данном случае проще заменить?
правильно: /boot со всем содержимым
про что надо помнить: про /boot/loader.conf и про modules
2) дано: kernel 9.1, system 9.2
что в данном случае проще заменить?
правильно: /boot со всем содержимым
про что надо помнить: про /boot/loader.conf и про modules
обратить внимание на то где находятся kernel modules в 9.1 и 9.2
в /boot/modules, /boot/kernel
Раз уж у Вас получилась каша и Вы не знаете что делать:
- берете флешку, ставите на нее НУЖНУЮ систему (release или stable или ...)
- получаете рабочую, загружаемую систему на USB
загружаетесь с нее:
- собираете все на флешке (это время, медленные операции I/O) и делаете следующее:
(для быстроты сборки НЕ В /usr/obj - см про MAKEOBJDIRPREFIX)
- определяете с чем Вы работаете: с зеркалом или с одним из дисков зеркала:
a) если с зеркалом, оно должно быть синхронизировано, то подгружаете gmirror
b) если с одним из дисков зеркала, то вероятно с первым и все равно fsck_ffs
c) после fsck_ffs -fy - монтируете то с чем будете работать, с FS на зеркале
из пункта a) или с FS на первом диске из зеркала из пункта b)
если у Вас на сервере / /usr разные FS, то необходимо смонтировать
в /mnt - сначала root, а затем в /mnt/usr - /usr
- допустим Вы смонтировали верхнее в /mnt, тогда у Вас CURRENT_ROOT будет /mnt
CURRENT_ROOT=/mnt и в нижнем можете вместо ${CURRENT_ROOT} просто писать /mnt
или выставить переменную среды CURRENT_ROOT=/mnt
- теперь собираете систему на USB и затем:
make build опускаю, а вот make install... ниже
# make installworld DESTDIR=${CURRENT_ROOT}
# make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
# make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
хотя вместо сборки на USB, я обычно выполнял fsck_ffs незазеркалированной FS диска,
монтировал и сборку(make build...) выполнял не на USB (/usr/obj) а на дисковую FS
используя переменную MAKEOBJDIRPREFIX, кстати mergemaster тоже ее использует (это в тему:
make distribution DESTDIR=...)
Вот собственно и все, еще раз по шагам:
- установили FreeBSD нужного релиза на USB
- воткнули USB в проблемный сервер
- загрузились с USB
- прогнали fsck_ffs -fy на FS от зеркала или FS первого диска с зеркала
- собрали все что нам нужно (в /usr/obj на USB или через MAKEOBJDIRPREFIX на дисковую FS)
- осталось выполнить make install...:
если нужно только ядро, то: make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=/path
если нужно только мир, то: make installworld DESTDIR=/path
и make distribution DESTDIR=/path
path - то куда Вы смонтировали FS от зеркала или диска
- ну и не забыть про mergemaster (ибо make distribution не совсем то)
хотя mergemaster можно выполнить уже на рабочей системе, если все будет ok
Верхнее понятно?
Вопросы?