[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: автомонтирование флэшки на /dev/sda и /dev/sda1



Mikhail Ramendik wrote:
> В сообщении от 8 марта 2006 15:45 Artem Chuprina написал(a):
> 
> 
>>Я тоже подумал в эту сторону.  Но Мише будет непросто такое написать.
> 
> 
> Собственно, мне надо понять две вещи - (1) что у этого скрипта должно быть на 
> выходе; (2) как определить без собственно mount, является ли некое устройство 
> valid block device.
> 
> Склоняюсь к забиванию на автоматику. Для монтирования руками написать скрипт, 
> запускаемый через sudo, будет IMHO просто.
> 

Проблема меня заинтересовала, так у самого ноутбучный винт в usb коробке и у жены
usb брелок. До сих пор пользовался вручныю написанным /etc/auto.usb, но там были ограничения,
на ноутбучном винте 2 раздела (vfat/ext2) и на брелке 1(vfat), так что очередность приходилось
учитывать.

Посему решил проблему устранить(см скрипт /etc/auto.usb ниже).
Скрипт умеет работать только с первичными разделами

В /etc/auto.master прописано следующее:

/var/autofs/usb                 /etc/auto.usb           --timeout=2

Сам скрипт

#!/bin/bash

# This file must be executable to work! chmod 755!

key="$1"

FDISK="/sbin/fdisk"

[ -x $FDISK ] || exit 1

scsi=$(echo $key | sed -e 's/[0-9]\+$//')

$FDISK -l /dev/$scsi 2>/dev/null | grep "^/dev/$key" | \
sed -e 's#\([^ \t]\+\)[* \t]\+\([0-9]\+\)[ \t]\+\([0-9]\+\)[ \t]\+\([0-9]\+\)[ \t]\+\([a-f0-9]\+\)[
\t]\+.*#\1 \5#g' | \
while read dev id
do
	dir=$key
	case $id in
		c|6)
			echo -e "-fstype=vfat,sync,iocharset=koi8-r,quiet,gid=floppy,dmask=0002,fmask=0113  :$dev" ;;
		83)
			echo -e "-fstype=ext2,nodev,noatime  :$dev" ;;
	esac
done

# eof

Естественно надо ссылки на /var/auto/usb/sd[a-d][0-9] прописать куда-нибудь
(у меня например ~/mnt/usb/).

Скрипт мягко говоря не оптимален, определяет тип файловой системы по типу раздела,
что не всегда будет работать, но если на досовских разделах будет vfat, а на линуксовых ext2 -
то жить можно.
Если есть пожелания - пишите, поправлю.




Reply to: