The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"FreeBSD-Update не пошло и не грузится ядро"
Отправлено lavr, 14-Апр-15 19:08 
>> и руками (tar) восстановить: kernel, base и lib32 (если amd64)
> А как руками восстановить? туда куда нужно?
> я tar не пользовался.
> да и потом на CDRom'е в папке /usr/freebsd-dist только единственный файл MANIFEST
> когда просматриваешь его там встречаются такие kernel, base

грузимся с FreeBSD-9.2-RELEASE-amd64-disc1.iso или memstick:

FreeBSD Installer:

Welcome...

<Install> <Shell> <Live CD>

выбираем <Live CD>, заходим под рутом (без пароля)

# mount
/dev/iso9660/FREEBSD_INSTALL on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
/dev/md0 on /var (ufs, local)
/dev/md1 on /tmp (ufs, local)
#

# ls -la /usr/freebsd-dist/
total 295511
drwxr-xr-x   2 root  wheel       2048 Sep 27  2013 .
drwxr-xr-x  15 root  wheel       2048 Sep 27  2013 ..
-rw-r--r--   1 root  wheel        782 Sep 27  2013 MANIFEST
-rw-r--r--   1 root  wheel   67671964 Sep 27  2013 base.txz
-rw-r--r--   1 root  wheel    1442376 Sep 27  2013 doc.txz
-rw-r--r--   1 root  wheel     887524 Sep 27  2013 games.txz
-rw-r--r--   1 root  wheel   83735660 Sep 27  2013 kernel.txz
-rw-r--r--   1 root  wheel   12622248 Sep 27  2013 lib32.txz
-rw-r--r--   1 root  wheel   36178396 Sep 27  2013 ports.txz
-rw-r--r--   1 root  wheel  100062284 Sep 27  2013 src.txz
#

- смотрим что у нас на hdd (ниже для gpt):

# gpart show
или
# gpart show ada0
=>      34  16777149  ada0  GPT  (8.0G)
        34       128     1  freebsd-boot  (64k)
       162  15935360     2  freebsd-ufs  (7.6G)
  15935522    837632     3  freebsd-swap  (409M)
  16773154      4029        - free -  (2M)
#

ada0p2 - корень, все на нем

- создаем mount_point:

# mkdir /tmp/root

- прогоняем fsck:

# fsck_ffs -fy /dev/ada0p2

если у Вас несколько FS на диске: /usr - отдельная FS, /var,
прогоняете на них fsck_ffs тоже и монтируете внутрь /tmp/root,
например, ada0p4 - /usr, ada0p5 - /var

# fsck_ffs -fy /dev/ada0p4
# fsck_ffs -fy /dev/ada0p5

- монтируем, сначала корень, затем уже в него все остальное

# mount /dev/ada0p2 /tmp/root
# ls -la /tmp/root

если есть отдельные FS:
# mount /dev/ada0p4 /tmp/root/usr
# mount /dev/ada0p5 /tmp/root/var

# mount
/dev/iso9660/FREEBSD_INSTALL on / (cd9660, local, read-only)
devfs on /dev (devfs, local, multilabel)
/dev/md0 on /var (ufs, local)
/dev/md1 on /tmp (ufs, local)
/dev/ada0p2 on /tmp/root (ufs, local, journaled soft-updates)

- сохраняете все что Вам нужно из etc (обычно etc/ssh/*, passwd,master.passwd, pwd.db,
  spwd.db

например:

# mkdir /tmp/etc
# cd /tmp/etc
# cp -R /tmp/root/etc/ssh .
# cp /tmp/root/etc/passwd .
# cp /tmp/root/etc/master.passwd .
# cp /tmp/root/etc/pwd.db .
# cp /tmp/root/etc/spwd.db .
# cp /tmp/root/etc/rc.conf .

возможно что-то еще, конфиг firewall'а, файл hosts... (вообще-то rc.conf создается
руками и в разворачиваемом дистрибутиве его нет)

- разворачиваем поверх того что есть: kernel,base,lib32 (лучше руками или добавить
exclude для var

# cd /usr/freebsd-dist/
запускаем sh:
# sh
# for file in base.txz kernel.txz lib32.txz ; do (cat $file | tar --unlink -xvpJf - -C /tmp/root); done
# exit

или тоже самое руками последовательно:

Важно, как и для сохранения нужных файлов из etc, так и данные в старом var:

# tar --unlink --exclude "./var" -xvpJf /usr/freebsd-dist/base.txz -C /tmp/root

выше, мы пропускаем извлечение /var, чтобы сохранить наш

# tar --unlink -xvpJf /usr/freebsd-dist/kernel.txz -C /tmp/root
# tar --unlink -xvpJf /usr/freebsd-dist/lib32.txz -C /tmp/root

Все, копируйте назад ssh, passwd, master.passwd, pwd.db, spwd.db и все остальное
что сохранили.

- размонтируете дисковые FS и reboot (загружаемся с HDD)

ps. Для начала, можете попробовать в виртуалке

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру