[freebsd] boot3 booting problem
зачем нужны по отдельности /boot/boot1 и /boot/boot2, если /boot/boot есть их сумма ?
И более того, disklabel умеет работать только с /boot/boot или /boot/boot1. Что умеет работать отдельно с /boot/boot2 ?
как можно восстановить содержимое slice /dev/ad0s1, если было сделано:
dd if=/dev/zero of=/dev/ad0s1 bs=512 count=32 ?
мб ты не правильно пересобрал?
Что умеет работать отдельно с /boot/boot2 ?зачем? boot1 и boot2 - части одной проги. в boot2 уже есть возможность выбрать ядро или загрузчик. что еще тебе надо изменить?
и еще:боюсь что никак. если файл удалил, то вообще его восстановить нельзя. Это уже не винда
как можно восстановить содержимое slice /dev/ad0s1, если было сделано:
dd if=/dev/zero of=/dev/ad0s1 bs=512 count=32 ?

ЗЫ. будь осторожно с командой dd (если ты как раз сидишь и играешь под рутом конечно)
cd /usr/src; make buildkernel KERNCONF=MCONF && make installkernel KERNCONF=MCONF &
boot1 лежит в boot sector, там и соответсвенно размер не более 512 байтов. придется разделить на 2 части boot1 и boot2.этот факт известен всем, комментировать мне его не стоит.
зачем? boot1 и boot2 - части одной проги.и это тоже знает каждый
Вопрос был такой: нахуй нужны /boot/boot1 и /boot/boot2, если есть уже /boot/boot(причем не ссылка) ?
зачем может понадобиться /boot/boot1 еще как то понятно, но вот /boot/boot2 для чего нужно ? для симметрии, чтобы было ?
как можно восстановить содержимое slice /dev/ad0s1, если было сделано:Никак. Можно по памяти. Можно с помощью всяких программок, которые ищут суперблоки и начала разделов.
dd if=/dev/zero of=/dev/ad0s1 bs=512 count=32 ?
В следующий раз сохранишь вывод disklabel -r ad0s1 на соседнюю машину.
А что такое boot3?
неужели можно просто запустить disklabel и создать таблицу ? партишены не затрутся ?
boot3 - это /boot/loader
Ну первый я думаю ты уже зацепил своим dd. Не знаю удастся ли его прочитать. А вот те, что дальше просто пропишешь в disklabel и всё.
> boot3 - это /boot/loader
Так у тебя на какой стадии "виснет"? что на экране? Что ты нажимаешь что бы бутилось дальше?
Так у тебя на какой стадии "виснет"?при попытке запуска /boot/loader. По ходу между boot2 и boot3
что на экране?Error: lba error . . . . (дальше не помню)
Default: 0:ad(0,a)/boot/loader
Boot:
и так в цикле
Что ты нажимаешь что бы бутилось дальше?в момент когда только начинает грузиться и появляется любой из символов: "-", "\", "|", "/" можно нажать любую клавишу и тогда грузится нормально
про этот хинт написано в man boot
Напомни, с какой версии на какую ты проапгрейдился?
уж не ATA-патчи ли это ?

А вот те, что дальше просто пропишешь в disklabel и всё.по ходу ты не прав, т.к. superblok 4.2BSD FS хранится в начале /dev/ad0s1
соответственно партишены без суперблока не замаунтятся.
по ходу ты не прав, т.к. superblok 4.2BSD FS хранится в начале /dev/ad0s1По ходу я прав. Той командой dd, которую ты показал, ты должен был убить только первый суперблок на первом разделе и его бэкап. Поэтому первый раздел ты похерил, если он достаточно мал и в нём только один бэкап. А вот более дальние разделы можно восстановить.
соответственно партишены без суперблока не замаунтятся.
при грамотном и аккуратном подходе /usr/ports/sysutils/scan_ffs тебе может помочь
ты должен был убить только первый суперблок на первом разделе и его бэкаптаблицу партишенов восстановил: disklabel -e /dev/ad0s1, но fsck_4.2bsd /dev/ad0s1 нихуя не помог, таблица восстановлена в точности как и была ранее.
При попытке сделать: mount -t ufs /dev/ad0s1d /mnt/home - выдается "нет корректного суперблока"
Что то с ним случилось.
по ходу должна помочь
disklabel -e /dev/ad0s1, но fsck_4.2bsd /dev/ad0s1fsck /dev/ad0s1[abde] ты имел в виду?
mount -t ufs /dev/ad0s1d /mnt/homeСомневаюсь, что ты правильно вспомнил разбиение или что dd зацепило только начало винта. Ты точно помнишь параметры которые ты вводил в sysinstall или
в disklabel. Покажи как у тебя сейчас выглядить disklabel.
То есть с патчем тоже самое? Ты точно уверен? Это важно выяснить до 5.4.
Сомневаюсь, что ты правильно вспомнил разбиениеточно помню, и уверен что таблица партишенов сто пудов верная. И параметры я все верно указал.
кстати, disklabel -e /dev/ad0s1 не дает сохранить некоректную таблицу.
Таким образом таблица у меня получилась корректно-описанная и сто пудов верная.

Как я понял 4.2BSD FS - это мета FS и как все FS она имеет суперблок, который (как я понял) она хранит в начале слайса.
А уже супербоки FS(которые идут поверх 4.2BSD FS) хранятся в начале каждого партишена.
Поэтому fsck /dev/ad0s1[abdefgh] у меня выдавало ошибку "некорректный суперблок"
Если не прав - тогда как правильно ?
> кстати, по поводу патча - походу дело все-таки в биосе, а не в софтечистота эксперимента нарушилась, т.к. у меня походу биос странно себя проявляет.
То есть с патчем тоже самое? Ты точно уверен? Это важно выяснить до 5.4.
Сегодня перепишу бивис и доразберусь, вчера заснул в процессе

Таки покажи вывод disklabel /dev/ad0s1
# /dev/ad0s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 4194304 0 4.2BSD 2048 16384 28552
b: 2626560 75497472 swap
c: 78124032 0 unused 0 0 # "raw" part, don't edit
d: 50331648 4194304 4.2BSD 2048 16384 28552
e: 10485760 54525952 4.2BSD 2048 16384 28552
f: 10485760 65011712 4.2BSD 2048 16384 28552
точно помню, и уверен что таблица партишенов сто пудов верная.эти слова беру обратно

scan_ffs рулит нипадецки

Вот у первого раздела offset наверное был 63.
в текущей(восстановленной) системе офссет 0 у первого партишена
Оставить комментарий
krishtaf
обновил сорцы с ultra.v.ru до 5.3-stable(cutting edge)добавил пару опций в generic конфиг, пересобрал ядро и мир
после перезагрузки обнаружил, что комп не может самостоятельно перезагрузиться, т.е.:
проходит стадию boot3 и не может найти /boot/loader, приходится до входа в boot3 нажимать на кнопочку клавиатуры(тогда все грузится и boot3 нормально проходится)
странная вещь