В сообщении от 27 Сентябрь 2003 09:28 Alexandra N. Kossovsky написал: > On Fri, Sep 26, 2003 at 06:00:57PM +0400, Artem Chuprina wrote: > > DNN> ЗЫЫ по поводу fdisk'а если я правлю таблицу разделов, в которой хотя > > бы DNN> один раздел примантирован, то мне нужно перегружать машину, чтобы > > ядро DNN> синхронезировалось с таблицей разделов :-/ раньше такого > > ограничения DNN> небыло, но когда оно появилось я точно сказать не могу > > поскольку с DNN> таблицами разделов приходится иметь дело достаточно > > редко... DNN> соответственно по пораметру "хочу перегрузиться" линукс > > неуклонно DNN> движется в сторону "совместимости с виндой" что на мой > > взгляд в корне DNN> неправильно... > > > > Сколько помню работу IDE в линуксах - всегда так было. > > Это - да. Не правда ваша в ядрах 1.х ядро нормально перечитывало таблицу разделов и не требовало перезагрузки. про ядра 2.0 и 2.2 уже не помню но на каких-то из этих ядер тоже не нужно было перегружаться > > > Это ограничение шины, кажется - для того, чтобы перечитать таблицу > > разделов, надо проинициализировать устройство. А переинициализировать > > устройство, с которого что-то смонтировано... > > Ограничением шины это не является, нулевой сектор можно читать в любой > момент хоть до посинения (чем fdisk и занимается). Там скореее > программно-техническая проблема. > > Дело в том, что (в нынешней реализации соответствующего куска linux > kernel) обновить можно только _всю_ таблицу разделов. Если при этом > границы смонтированных разделов двигали, то некоторые куски кода будут > продолжать думать, что у смонтированных разделов прежняя геометрия, > а другие куски кода уже будут знать про новую геометрию. Что может > привести к задумчивым эффектам. это да и скорее всего текущее ограниченние просто напросто защита от дураков. хотя большой погоды это не делает, поскольку размер fs ядро берет не из таблицы разделов а из суперблока fs и если он отличается... я тут совсем недавно влетел в такую ситуацию: - на разделе hda6 была ext3 - #umount /dev/hda6 - #fdisk /dev/hda - удаляем раздел /dev/hda6 - на его месте создаем разделы hda6 и hda7 - прсим fdisk записать новую таблицу разделов на диск, fdisk записывает ее но говорит, что чтобы синхронизировать ее с ядром небобходима перезагрузка (!) - перегружаю комп :-( - после перегрузки ядро находит /dev/hda6 в fstab (ну забыл я поправить этот файлик пред тем как сказать reboot) и... монтирует его !!!! при этом оно скромно возмущается что размер партиции и размер fs, указанный в суперблоке, не совпадают... при этом оно естественно использует информацию из суперблока... -- Занавес! вобщем какой смысл был перегружать комп, если в результате у меня подмонтированная партиция не совпадает с тем что написано в таблице разделов :-/ кстати вообще прикольно получится если поменять размер подмонтированной партиции: при перегрузке, когда ядро скажет этой fs sync перед тем как ее окончательно размонтировать вполне может слететь таблица для logical разделов!!!
> А никакой ре-инициализации ide (или scsi) > девайса при перечитывании таблицы разделов не происходит. > > Я не пытаюсь сказать, что невозможно написать код так, чтобы > перечитывание таблицы разделов было возможно при смонтированных > разделах. Но это непросто и, видимо, никому не нужно. Особенно никому не > нужно ловить блох, которые появятся при таком переписывании. Видимо нужно было, раз его переписали... только не доконца, а может я чего недопонял... (в смысле как правильно делать) PS а что делать с геомертий (см начало треда) никто так и не сказал :-( а без lilo вообще-то фигово

