AlekseyA,
cat /proc/scsi/usb-storage-*/*
N.B. swap у меня не используется (допаяна память), поэтому его я не предусматривал.
Last edited by bbsc; 20-02-2009 at 07:18.
Все выше сказанное ИМХО (Имею Мнение, Хрен Оспоришь)
ASUS WL-500g Premium + (1.9.2.7-rtn-r4667) + Tsunami eDATA 3500 with 1Tb + HPLJ1018 + Wake-On-LAN
"Установка программ для чайника v.12.4" + Iconbit HD400DVD + APC Smart-UPS 1000XL + Samsung UE32C6620UWXRU
Со свопом, видимо, будет так (нужно подставить еще и свои номера разделов на винчестере):
Мне негде проверить.Code:#!/bin/sh hdd_guid="05e307020000000000000000" flash_guid="058f638700000001a211f3f9" hdd_mount="/home" hdd_data="part1" hdd_swap="part2" flash_mount="/opt" mnt_options="noatime,nodiratime,rw" scsi () { hostid="" for i in 0 1 2 3; do host="/proc/scsi/usb-storage-$i/$i" [ -f $host ] && [ ${#1} -eq 24 ] && grep "GUID: $1" $host -q && grep "Attached: Yes" $host -q && hostid=$i && break done dev="/dev/scsi/host$hostid/bus0/target0/lun0/" && [ -e $dev ] && echo $dev } hdd_dev=`scsi $hdd_guid` flash_dev=`scsi $flash_guid` echo -e "# device\t\t\t\tMountpoint\tFStype\tOptions\t\t\tDump\tPass#" > /etc/fstab [ -n "$hdd_dev" ] && echo -e $hdd_dev$hdd_data"\t$hdd_mount\t\text3\t$mnt_options\t0\t0" >> /etc/fstab && echo -e $hdd_dev$hdd_swap"\tnone\t\tswap\tsw\t0\t0" >> /etc/fstab [ -n "$flash_dev" ] && echo -e $flash_dev"part1\t$flash_mount\t\text3\t$mnt_options\t0\t0" >> /etc/fstab
Поэтому лучше попробовать запустить данный скрипт на работающем роутере и глянуть, правильно ли формируется fstab.
Если нет - поправим
Если правильно - можно сохранять его как pre-mount.
Все выше сказанное ИМХО (Имею Мнение, Хрен Оспоришь)
ASUS WL-500g Premium + (1.9.2.7-rtn-r4667) + Tsunami eDATA 3500 with 1Tb + HPLJ1018 + Wake-On-LAN
"Установка программ для чайника v.12.4" + Iconbit HD400DVD + APC Smart-UPS 1000XL + Samsung UE32C6620UWXRU
AlekseyA, да как запустить....
Создать файл, например:
touch /opt/tmp/vasya
chmod +x /opt/tmp/vasya
Скопировать туда скрипт, прописать свои ГУИДы, разделы и сохранить.
Запустить файл на исполнение:
/opt/tmp/vasya
Затем глянуть cat /etc/fstab и сравнить с выводом /mount
З.Ы. Я так и не понял, сколько разделов с винта нужно монтировать: два или три.
Компетентные товарищи, прошу высказать ваше мнение по поводу такого варианта (по возможности с комментариями):
fstab:
pre-mountPHP Code:
#device Mountpoint FStype Options Dump Pass#
/dev/discs/disc0/part1 none swap sw 0 0
/dev/discs/disc0/part2 /tmp/mnt/disc0_2 ext3 rw,noatime 1 1
/dev/discs/disc0/part3 /tmp/mnt/disc0_3 ext3 rw,noatime 1 1
/dev/discs/disc0/part4 /tmp/mnt/disc0_4 ntfs rw,noatime 1 1
/tmp/mnt/disc0_2/opt /opt none bind,rw,noatime 0 0
/tmp/mnt/disc0_3/torrents /opt/share/torrent/work none bind,rw,noatime 0 0
post-mountPHP Code:
#!/bin/sh
swapon -a
for i in `awk '/ext3/{print($1)}' /etc/fstab` ; do
if [ -b $i ] ; then
grep -q $i /proc/mounts || e2fsck -p $i 2>&1 | logger -t e2fsck
else
logger -t fstab "$i is not attached"
fi
done
pre-shutdownPHP Code:
#!/bin/sh
# swapon /dev/discs/disc0/part1
# mount -o sync,noatime,rw /dev/discs/disc0/part2 /tmp/harddisk
# mount -o bind /tmp/harddisk/opt /opt
# mount -o bind /tmp/mnt/disc0_3/torrents /opt/share/torrent/work
mount -a
/opt/etc/init.d/rc.unslung start
Спасибо.PHP Code:
#!/bin/sh
# Stop All servises
echo "Stop Servises" 2>&1
/opt/etc/init.d/rc.unslung stop
sleep 10s
# Kill procces
echo "Killing Process" 2>&1
lsof -t /dev/discs/disc0/part2 | xargs kill -9
lsof -t /dev/discs/disc0/part3 | xargs kill -9
sleep 2s
# Remount to Read Only
echo "Remount Disks"
for i in `cat /proc/mounts | awk '/ext3/{print($1)}'` ; do
echo "$i" 2>&1
mount -o remount,ro $i
done
# Swap Off
echo "Swap Off" 2>&1
swapoff -a
sleep 2s
echo "Finish!"
А в чем смысл двойного монтирования, тем более в fstab?
Почему сразу так не сделать?
С соответствующим исправлением остального кода.Code:#device Mountpoint FStype Options Dump Pass# /dev/discs/disc0/part1 none swap sw 0 0 /dev/discs/disc0/part2 /opt ext3 bind,rw,noatime 1 1 /dev/discs/disc0/part3 /torrent ext3 bind,rw,noatime 1 1 /dev/discs/disc0/part4 /tmp/mnt/disc0_4 ntfs ro,noatime 1 1
ntfs ro - читаем о работе линейки Линуксов с ядром 2.4 с данной ФС.
Было: WL500gP (fw 1.9.2.7-10-USB-1.71) + Toshiba TravelStar 250Gb 2.5" inside router.
(ADOS + rTorrent WebUI+rtorrent + samba + rrdtool + XMail + QuiXplorer + ClamAV)
> Мои инструкции < Для новичков и ленивых > Wiki переехало сюда < "Ночные" сборки >
Как примонтировать swap, /opt (на флешке) и отдельный usb-hdd для данных. У меня при каждой загрузке/перегрузке они могут монтировать, а могут не монтироваться. В общем этот процесс проходит нестабильно, и без четкой системы.
Т.е. флешка может стать как /dev/discs/disc0, а винт как /dev/discs/disc1
А после перегрузки они могут поменяться местами, а после нескольких перегузок снова вернуться назад. :-(
Этот вопрос похоже периодически вплывает, но четкого ответа, что нужно сделать то-то так я не нашел.
После чтения форума и уже практически недельного мучанья роутера
(Перестановка флешек, бокса для HDD и добавление активного хаба)
это может быть следствием следующих проблем:
1. К моменту обработки fstab ещё не все usb устройства проинициализированны.
2. Сами устройства, по каким-то причинам, могут определяются контроллером в разно порядке, и потому получают разные номера.
А теперь вопросы:
Что касается первой проблемы.
На форуме мне попадалось предложение вставить задержку (типа: sleep 5) до монтирования устройств, чтобы они точно к этому моменту проинициализировались.
В какой из файлов: pre-boot, post-boot или pre-mount нужно вставить задержку?
По второй проблеме.
Я так понимаю, что нужно смотреть в строну монтирования по серийному номеру или по метке раздела.
Можно ли как-то прописать fstab путь раздела с серийником?
Если нет, то как правильно сделать монтирование устройств по серийному номеру?
Last edited by igor77777; 20-04-2009 at 10:36.
[ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];
Посмотри вот тут: Как зафиксировать порядок USB носителей?
Все выше сказанное ИМХО (Имею Мнение, Хрен Оспоришь)
ASUS WL-500g Premium + (1.9.2.7-rtn-r4667) + Tsunami eDATA 3500 with 1Tb + HPLJ1018 + Wake-On-LAN
"Установка программ для чайника v.12.4" + Iconbit HD400DVD + APC Smart-UPS 1000XL + Samsung UE32C6620UWXRU
[ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];
А откуда эти GUIDы брать, чтоб потом запихнуть в скрипт?
Это есть в указанной (Как зафиксировать порядок USB носителей?) теме.
А вот я что не понимаю.
Взял скрипт отсюдаотсюда, изменил GUID добавил пару строк. в общем описал названия своих разделов swap и opt на флешке, и получаю
на строках
следующее:Code:hdd_dev=`scsi $hdd_guid` flash_dev=`scsi $flash_guid`
Почему?Code:[admin@IGORROUTER root]$ [admin@IGORROUTER root]$ sh /usr/local/sbin/pre-mount /usr/local/sbin/pre-mount: /usr/local/sbin/pre-mount: 33: /dev/scsi/host1/bus0/target0/lun0/: Permission denied /usr/local/sbin/pre-mount: /usr/local/sbin/pre-mount: 34: /dev/scsi/host0/bus0/target0/lun0/: Permission denied [admin@IGORROUTER root]$
Как вылечить?
Я ведь под админом это запускаю.
---------------------
Разобрался.
Глупость написал.
Ошибка закралась в скрипт, при переносе через буфер.
Все заработало.
Last edited by igor77777; 20-04-2009 at 20:39. Reason: глупость написал
[ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];
За основу я взял этот скрипт из темы Как зафиксировать порядок USB носителей?
Ответ на вопрос как получить GUID.
Вот так:
эта команда выведет все, что известно о ваших usb-storage устройствах.Code:cat /proc/scsi/usb-storage-*/*
Вот, что получил я:
У меня подключена флешка и usb-hdd в коробке Transcend StoreJet.Code:[admin@IGORROUTER root]$ cat /proc/scsi/usb-storage-*/* Host scsi0: usb-storage Vendor: JMicron Product: StoreJet Transcend Serial Number: 608B2FBF0FFF Protocol: Transparent SCSI Transport: Bulk GUID: 152d23290000608b2fbf0fff Attached: Yes Port: 2.1 Bus: 01:03.2-2.1 Host scsi1: usb-storage Vendor: Generic Product: Mass Storage Device Serial Number: 39J364SI Protocol: Transparent SCSI Transport: Bulk GUID: 058f638700000000393365d2 Attached: Yes Port: 1.1 Bus: 01:03.2-1.1
я взял строчки:
GUID: 058f638700000000393365d2
GUID: 152d23290000608b2fbf0fff
и занес их в соотвествующие строчки скрипта.
Кроме того, поскольку у меня и swap и opt находятся на флешке, а hdd я планирую использовать только для данных, то я внес некоторые изменения в сам скрипт.
Вот мой вариант скрипта:
Вот собсвенно и все.Code:#!/bin/sh # Создание fstab по серийникам подключенных устройств НАЧАЛО hdd_guid="152d23290000608b2fbf0fff" flash_guid="058f638700000000393365d2" hdd_mount="/home" hdd_data="part1" hdd_swap="part1" flash_mount="/opt" flash_swap="part1" flash_opt="part2" mnt_options="noatime,nodiratime,rw" scsi () { hostid="" for i in 0 1 2 3; do host="/proc/scsi/usb-storage-$i/$i" [ -f $host ] && [ ${#1} -eq 24 ] && grep "GUID: $1" $host -q && grep "Attached: Yes" $host -q && hostid=$i && break done dev="/dev/scsi/host$hostid/bus0/target0/lun0/" && [ -e $dev ] && echo $dev } hdd_dev=`scsi $hdd_guid` flash_dev=`scsi $flash_guid` echo -e "# device\t\t\t\tMountpoint\tFStype\tOptions\t\t\tDump\tPass#" > /etc/fstab [ -n "$flash_dev" ] && echo -e $flash_dev$flash_swap"\tnone\t\tswap\tsw\t0\t0" >> /etc/fstab && echo -e $flash_dev$flash_opt"\t$flash_mount\t\text3\t$mnt_options\t0\t0" >> /etc/fstab [ -n "$hdd_dev" ] && echo -e $hdd_dev$hdd_data"\t$hdd_mount\t\text3\t$mnt_options\t0\t0" >> /etc/fstab # Создание fstab по серийникам подключенных usb устройств КОНЕЦ
[ASUS wl-500gP (v1) 1.9.2.7-rtn-r7438M 128Mb 300MHz 2+2usb] + [2Гб USBFlash] + [USB-HDD] + [xinetd] + [samba3] + [Download Engine] + [rTorrent] + [3proxy] + [nShaper] + [mcabber] + [apcupsd] + [mpd]; Было: [openvpn&udhcpc]; [privoxy] + [polipo];
Имеется постоянно установленная флэшка, во втором USB- гнезде USB-хаб, к которому подключены принтер и накопитель. Принтер и накопитель периодически принудительно отключаются (особенно накопитель, т.к. шумноватый вентилятор). После таких отключений в сетевом окружении на компьютере постоянно меняются названия сетевых ресурсов. То disk0_1, то disk1_1 2_1 и флешка может не показывать наличие файлов.А качалки на компьютере имеют весьма определенные указатели на место скачивания. Файл fstab в роутере отсутствует.
Что можно сделать для того, чтобы не скакали названия сетевых ресурсов при вкл/выкл принтера и накопителя, как жестко прописать их монтирование на роутере?
Last edited by vladniktep; 03-06-2009 at 17:30.