Падает на VIA C3
- From
- Anna Nikolaeva (2:450/102.112)
- To
- Victor Sudakov
- Date
- 2008-02-12T09:50:38Z
- Area
- RU.UNIX.SOLARIS
Hello, Victor!
On 12 Feb 08 09:33, Victor Sudakov (2:5020/400) wrote to Anna Nikolaeva:
VS> From: Victor Sudakov <vas@mpeks.tomsk.su>
VS> Anna Nikolaeva wrote:
>> >> AN> А если смувить /etc/path_to_inst ?
>> >> Только мувить его надо в бутархиве.
>> >> Например, на изначальном сервере сделать так:
>> >> mv /etc/path_to_inst /etc/path_to_inst.orig
>> >> mv /platform/`uname -i`/boot_archive /platform/`uname
>> >> -i`/boot_archive.orig bootadm update-archive
>> VS> Поясни пожалуйста, какую роль играет path_to_inst и почему его
>> VS> удаление должно помочь?
>> Я не утверждаю, что оно поможет, потому как мне никогда не приходилось
>> перетаскивать соляру с одной машины на другую с разными зугрузочными
>> контролерами.
>> Идея проста: в path_to_inst сидит, грубо говоря, описание конфигурации
>> конкретного компутера.
VS> А если поподробнее? Кто именно в системе *пользуется* этой привязкой
VS> physical device names to instance numbers? А то создалось впечатление,
VS> что path_to_inst ведут только ради mknod. Без mknod я как-нибудь переживу.
Мне больше верится, что ведется оно для того, чтобы между ребутами
имена устройств не плавали. Т.е. переставили девайс на выключенной
системе, в другой слот - получили _новый_ экземпляр этого девайса.
Вернули его назад - получили старый. При этом система уже знает,
что по такому-то аппаратному пути когда-то был тот самый _новый_
экземпляр. Это _я_ так понимаю. По аналогии с /etc/ioconfig на hpux.
VS> А остальная часть системы, похоже, пользуется или симлинками в /dev,
VS> или непосредственно physical device names (bootpath в eeprom,
VS> например).
В /dev, как правильно было замечено, живут _только_ симлинки. Сами же
файлы устройств живут именно в /devices. И именно оттуда берется
информация о том, какой драйвер и с какими параметрами (major/minor)
необходимо пользовать при доступе к конкретному устройству.
Из man path_to_inst видим:
<quote>
The instance number of a device is encoded in its minor
number, and is the way that a device driver determines which
of the possible devices that it may drive is referred to by
a given special file.
</quote>
Я сильно подозреваю, что в Вашем случае проблема именно с кашей
в файле path_to_inst
>> Если его удалить, система сгенерит новый. И этот
>> новый не будет содержать хвостов от старой системы.
VS> Не помогло удаление. Более того, если его удаляешь и потом запускаешь
VS> "bootadm update-archive", то "bootadm list-archive" таки показывает
VS> наличие какого-то path_to_inst в архиве.
Оно, видимо, пытается проявить интеллект и не хочем апдэйтить
удаленный файл...
Вариантов обхода я вижу два:
1) заменить файл /etc/path_to_inst его аналогом из /boot/x86.miniroot-safe
Оно - загзипаное ufs, кстати, с очень любопытным параметром (если оно
параметр, конечно). bootadm update-archive -v
2) удалить /etc/path_to_inst прямо из бутархива (/platform/i86pc/boot_archive)
Оно - загзипаное hsfs
>> VS> Чтение man path_to_inst и man devfs не внесло ясности. То есть
>> VS> стало
>> VS> только понятно, что хитрые имена в /devices живут своей жизнью под
>> VS> управлением devfs, devfsadm создаёт на них удобочитаемые линки в /dev,
>> VS> а path_to_inst тогда нужен зачем?
>> Ну и по ходу, boot -r, наверное не помешет.
VS> Пробовал.
VS> Ещё "boot -a" попробую и расскажу, что получилось.
Anna.
--- GoldED+/W32 snapshot-2001.5.29
* Origin: By. (2:450/102.112)
SEEN-BY: 45/128 236/100 450/77 102 1024 451/13 452/123 4500/1 5000/5000
SEEN-BY: 5011/13 5015/28 5019/40 5020/400 545 2238 4441 5021/29 5025/3
SEEN-BY: 5030/1957 5035/38 5045/7 5054/1 4 8 9 28 37 5061/120 5062/10 5064/7
SEEN-BY: 5085/13 5095/20 5096/18 6001/10
PATH: 450/102 1024 5020/545 5054/1 37