Добрый день! Возникла интересная задача - нужно монтирование основных разделов по условию доступности диска. Объясняю - пусть система грузится и в fstab прописано, что например var нужно примонтировать в /dev/sda2. Но если это не удастся - примонтировать в /dev/sda3 (название разделов и устройств взяты с потолка).
Как я понял, средствами grub такое не сделать. Тогда вопрос,как можно такое осуществить - я не в курсе, на какой стадии идет монтирование и не возникнет ли проблем?)
> Добрый день! Возникла интересная задача - нужно монтирование основных разделов по условию
> доступности диска. Объясняю - пусть система грузится и в fstab прописано,
> что например var нужно примонтировать в /dev/sda2. Но если это не
> удастся - примонтировать в /dev/sda3 (название разделов и устройств взяты с
> потолка).
> Как я понял, средствами grub такое не сделать. Тогда вопрос,как можно такое
> осуществить - я не в курсе, на какой стадии идет монтирование
> и не возникнет ли проблем?)проверка FS - fsck, стартует из первого процесса в системе - из init, вот его и правьте
>> Добрый день! Возникла интересная задача - нужно монтирование основных разделов по условию
>> доступности диска. Объясняю - пусть система грузится и в fstab прописано,
>> что например var нужно примонтировать в /dev/sda2. Но если это не
>> удастся - примонтировать в /dev/sda3 (название разделов и устройств взяты с
>> потолка).
>> Как я понял, средствами grub такое не сделать. Тогда вопрос,как можно такое
>> осуществить - я не в курсе, на какой стадии идет монтирование
>> и не возникнет ли проблем?)initrd, можно любую логику туда запрограммировать.
>>> Добрый день! Возникла интересная задача - нужно монтирование основных разделов по условию
>>> доступности диска. Объясняю - пусть система грузится и в fstab прописано,
>>> что например var нужно примонтировать в /dev/sda2. Но если это не
>>> удастся - примонтировать в /dev/sda3 (название разделов и устройств взяты с
>>> потолка).
>>> Как я понял, средствами grub такое не сделать. Тогда вопрос,как можно такое
>>> осуществить - я не в курсе, на какой стадии идет монтирование
>>> и не возникнет ли проблем?)
> initrd, можно любую логику туда запрограммировать.да, initrd более подходящий вариант
>>>> Добрый день! Возникла интересная задача - нужно монтирование основных разделов по условию
>>>> доступности диска. Объясняю - пусть система грузится и в fstab прописано,
>>>> что например var нужно примонтировать в /dev/sda2. Но если это не
>>>> удастся - примонтировать в /dev/sda3 (название разделов и устройств взяты с
>>>> потолка).
>>>> Как я понял, средствами grub такое не сделать. Тогда вопрос,как можно такое
>>>> осуществить - я не в курсе, на какой стадии идет монтирование
>>>> и не возникнет ли проблем?)
>> initrd, можно любую логику туда запрограммировать.
> да, initrd более подходящий вариантОк. Например как?
> Добрый день! Возникла интересная задача - нужно монтирование основных разделов по условию
> доступности диска. Объясняю - пусть система грузится и в fstab прописано,
> что например var нужно примонтировать в /dev/sda2. Но если это не
> удастся - примонтировать в /dev/sda3 (название разделов и устройств взяты с
> потолка).# cat /etc/fstab
/dev/sda3 /var xfs defaults 0 0
/dev/sda4 /var ext4 defaults 0 0
/dev/sda5 /var btrfs defaults 0 0
/dev/sda6 /var jfs defaults 0 0
/dev/sda7 /var reiser4 defaults 0 0Какой доступен, тот и примонтируется :)
А вообще, если нужна логика, то во fstab прописывать не надо, или писать noauto
>[оверквотинг удален]
>
> /dev/sda3 /var xfs defaults 0 0
> /dev/sda4 /var ext4 defaults 0 0
> /dev/sda5 /var btrfs defaults 0 0
> /dev/sda6 /var jfs defaults 0 0
> /dev/sda7 /var reiser4 defaults 0 0
>
> Какой доступен, тот и примонтируется :)
> А вообще, если нужна логика, то во fstab прописывать не надо, или
> писать noautoУже лучше. А приоритеты можно расставить при монтировании?
>[оверквотинг удален]
>>
>> /dev/sda3 /var xfs defaults 0 0
>> /dev/sda4 /var ext4 defaults 0 0
>> /dev/sda5 /var btrfs defaults 0 0
>> /dev/sda6 /var jfs defaults 0 0
>> /dev/sda7 /var reiser4 defaults 0 0
>>
>> Какой доступен, тот и примонтируется :)
>> А вообще, если нужна логика, то во fstab прописывать не надо, или
>> писать noautoИ еще - initrd конечно сила, но по моему он совсем для другого заточен, нежели для монтирования специфичных разделов ;-)
>[оверквотинг удален]
>>> /dev/sda4 /var ext4 defaults 0 0
>>> /dev/sda5 /var btrfs defaults 0 0
>>> /dev/sda6 /var jfs defaults 0 0
>>> /dev/sda7 /var reiser4 defaults 0 0
>>>
Ну почему же... Например
for i in $DISKS_IN_PRIORITY
KERNEL_DISKS=`cat /proc/cmdline | sed 's/.*vardisks=\([^ ]*\).*/\1/; s/,/ /g;'`
if [ fdisk -l $i ]
then
case $i in
hda3 | hdb5 ) mount -t xfs $i /var; break;;
sdb4) mount -t ext4 $i /var; break;;
sdc9) mount -t jfs $i /var; break;;
*) break;;
esac
fi
done
Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
Чёй-то меня понесло... %)
>[оверквотинг удален]
>
>
> *) break;;
>
> esac
> fi
> done
>
> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
> Чёй-то меня понесло... %)Спасибо, гляну. Попробую покопаться в initrd, но уже склоняюсь к той мысли что для всего этого есть raid, ибо зачем изобретать велосипед. Осталось теперь руководству эту мысль вбить.
>[оверквотинг удален]
>>
>> esac
>> fi
>> done
>>
>> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
>> Чёй-то меня понесло... %)
> Спасибо, гляну. Попробую покопаться в initrd, но уже склоняюсь к той мысли
> что для всего этого есть raid, ибо зачем изобретать велосипед. Осталось
> теперь руководству эту мысль вбить.Еще вопрос - в каком файле это править? в init в самом initrd?
>[оверквотинг удален]
>>> fi
>>> done
>>>
>>> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
>>> Чёй-то меня понесло... %)
>> Спасибо, гляну. Попробую покопаться в initrd, но уже склоняюсь к той мысли
>> что для всего этого есть raid, ибо зачем изобретать велосипед. Осталось
>> теперь руководству эту мысль вбить.
> Еще вопрос - в каком файле это править? в init в самом
> initrd?Еще вопрос - а видны ли устройства в скрипте? Попробовал замонтировать - говорит что такого устройства нет...
>[оверквотинг удален]
>>> fi
>>> done
>>>
>>> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
>>> Чёй-то меня понесло... %)
>> Спасибо, гляну. Попробую покопаться в initrd, но уже склоняюсь к той мысли
>> что для всего этого есть raid, ибо зачем изобретать велосипед. Осталось
>> теперь руководству эту мысль вбить.
> Еще вопрос - в каком файле это править? в init в самом
> initrd?Это у всех дистров по-разному. Капай в /etc/ на предмет initrd initramfs mkinird и т.д.
а лучше на форуме по своему дистру.
>[оверквотинг удален]
>>
>> esac
>> fi
>> done
>>
>> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
>> Чёй-то меня понесло... %)
> Спасибо, гляну. Попробую покопаться в initrd, но уже склоняюсь к той мысли
> что для всего этого есть raid, ибо зачем изобретать велосипед. Осталось
> теперь руководству эту мысль вбить.Ты б смысл объяснил сего действа. Если всего два диска - то зеркало.
Если это к примеру 6 и больше, то может RAID6 или RAID 1+5 + 1 Ноt-Spare на каждое зеркало :)
>[оверквотинг удален]
>>>
>>> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
>>> Чёй-то меня понесло... %)
>> Спасибо, гляну. Попробую покопаться в initrd, но уже склоняюсь к той мысли
>> что для всего этого есть raid, ибо зачем изобретать велосипед. Осталось
>> теперь руководству эту мысль вбить.
> Ты б смысл объяснил сего действа. Если всего два диска - то
> зеркало.
> Если это к примеру 6 и больше, то может RAID6 или RAID
> 1+5 + 1 Ноt-Spare на каждое зеркало :):) Просто изначально тех задание было одним - сейчас выясняется совсем другое.. А так обычно на raid делаю.
>[оверквотинг удален]
>
>
> *) break;;
>
> esac
> fi
> done
>
> Ядру при загрузке говоришь kernel vmlinux-2.6.99.2 root=/dev/sda1 vardisks=hda3,hda5,sdb4,sdc9
> Чёй-то меня понесло... %)Не монтируются. Непонятно...
>[оверквотинг удален]
>> /dev/sda3 /var xfs defaults 0 0
>> /dev/sda4 /var ext4 defaults 0 0
>> /dev/sda5 /var btrfs defaults 0 0
>> /dev/sda6 /var jfs defaults 0 0
>> /dev/sda7 /var reiser4 defaults 0 0
>>
>> Какой доступен, тот и примонтируется :)
>> А вообще, если нужна логика, то во fstab прописывать не надо, или
>> писать noauto
> А приоритеты можно расставить при монтировании?Можно
/dev/sda3 /var xfs defaults 0 0
/dev/sda4 /var ext4 defaults 0 0
/dev/sda5 /var btrfs defaults 0 0
/dev/sda6 /var jfs defaults 0 0
/dev/sda7 /var reiser4 defaults 0 0sda3, sda4, sda5, sda6, sda7
/dev/sda7 /var reiser4 defaults 0 0
/dev/sda5 /var btrfs defaults 0 0
/dev/sda3 /var xfs defaults 0 0
/dev/sda4 /var ext4 defaults 0 0
/dev/sda6 /var jfs defaults 0 0sda7, sda5, sda3, sda4, sda6
Только толку от этого ноль, ибо примонтируется самый последний живой.
То есть, если у тя живы sda3 и sda7, то в каталоге /var увидишь содержимое sda7
> Только толку от этого ноль, ибо примонтируется самый последний живой.Примонтируются _все_ доступные -- один поверх другого.
> То есть, если у тя живы sda3 и sda7, то в каталоге
> /var увидишь содержимое sda7И да, "виден" будет последний.
>> Только толку от этого ноль, ибо примонтируется самый последний живой.
> Примонтируются _все_ доступные -- один поверх другого.Тогда этот бубен не подходит...
>> То есть, если у тя живы sda3 и sda7, то в каталоге
>> /var увидишь содержимое sda7
> И да, "виден" будет последний.