On Tue, Oct 23, 2007 at 11:28:37PM +0400, Aleksey Avdeev wrote: > Именно таким хаком (копированием в initrd mdassemble и системного > /etc/mdadm.conf) я эту проблему и решил... Но ненравиться мне такое > решение! :-( > > По ходу дела выползло (незнаю, на сколько с данным способом решения > связанное): > > 1. Неполучилось смонтировать root по UUID -- параметр root=UUID= скопированный из lilo.conf> оказался нерабочим: зажило только с > root=/dev/md<нужный> Если это /dev/md0, вероятнее всего, это тот же race, для которого сделан hackaround в текущей реализации: # /scripts/local-top runs before swsusp resume - start RAID in # read-only mode to avoid messing up resume state. Actually the # start_ro parameter sets the "read-auto" mode - arrays initially # start read-only, but are switched to the normal read-write mode on # the first write request, so there is no need to switch arrays to # the read-write mode explicitly. # # "echo add > /sys/block/md0/uevent" after md_run is a workaround for # an unavoidable race between md_run invoking RAID_AUTORUN ioctl on # /dev/md0 and udevd probing the started md devices (one of which may # be /dev/md0): probing fails if it starts when md_run still has # /dev/md0 open. The extra uevent makes sure that /dev/md0 is probed # properly, which is important when the root fs is specified by UUID. cat >>"$MNTDIR"/scripts/local-top <<'EOF' log_begin_msg "Starting up RAID devices" modprobe -q md_mod echo 1 > /sys/module/md_mod/parameters/start_ro md_run `cat /proc/cmdline` echo add > /sys/block/md0/uevent ||: log_end_msg EOF Т.е., после md_run (или mdassemble) нужно лишний раз дёрнуть /sys/block/md0/uevent, чтобы для него прочитался uuid. Хотя, возможно, для mdassemble этого будет мало.