run: '/etc/udev/scripts/scsi.sh'
Что это за скрипт и какому пакету принадлежит?
run: '/etc/udev/scripts/scsi.sh'
Что это за скрипт и какому пакету принадлежит?
Получается вот тут еще лезут правила /lib/udev/rules.d/60-persistent-storage.rules
add_matching_files: unable to open '/run/udev/rules.d': No such file or directory
Не думаю, что это принципиально, но попробуйте создать соответствующую директорию:
mkdir /run
...и перегрузиться либо перезапустить сервис udevd.
Получается вот тут еще лезут правила /lib/udev/rules.d/60-persistent-storage.rules
Покажите этот файл.
udev_rules_apply_to_event: RUN '/etc/udev/scripts/scsi.sh' /etc/udev/rules.d/99-udev.rules:22
А если это правило убрать?
вот.. Две строчки я закаментил касаемые usb. Стало еще хуже, но опять же русские видны только после второго раза
# do not edit this file, it will be overwritten on update
# persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path}
# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare@suse.de>
# forward scsi device event to corresponding block device
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
ACTION=="remove", GOTO="persistent_storage_end"
# enable in-kernel media-presence polling
ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_poll_msecs}=="0", ATTR{parameters/events_dfl_poll_msecs}="2000"
SUBSYSTEM!="block", GOTO="persistent_storage_end"
# skip rules for inappropriate block devices
KERNEL=="fd*|mtd*|nbd*|gnbd*|btibm*|dm-*|md*", GOTO="persistent_storage_end"
# ignore partitions that span the entire disk
TEST=="whole_disk", GOTO="persistent_storage_end"
# for partitions import parent information
ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
# virtio-blk
KERNEL=="vd*[!0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/virtio-$env{ID_SERIAL}"
KERNEL=="vd*[0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/virtio-$env{ID_SERIAL}-part%n"
# ATA devices with their own "ata" kernel subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program}="ata_id --export $devnode"
# ATA devices using the "scsi" subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $devnode"
# ATA/ATAPI devices (SPC-3 or later) using the "scsi" subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{type}=="5", ATTRS{scsi_level}=="[6-9]*", IMPORT{program}="ata_id --export $devnode"
# Run ata_id on non-removable USB Mass Storage (SATA/PATA disks in enclosures)
#KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", ATTR{removable}=="0", SUBSYSTEMS=="usb", IMPORT{program}="ata_id --export $devnode"
# Otherwise fall back to using usb_id for USB devices
#KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
# scsi devices
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi"
KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss"
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
# firewire
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
# scsi compat links for ATA devices
KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
KERNEL=="mspblk[0-9]", SUBSYSTEMS=="memstick", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/memstick-$env{ID_NAME}_$env{ID_SERIAL}"
KERNEL=="mspblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/memstick-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
# by-path (parent device path)
ENV{DEVTYPE}=="disk", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id"
ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
# skip unpartitioned removable media devices from drivers which do not send "change" events
ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
# probe filesystem metadata of optical drives which have a media inserted
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \
IMPORT{builtin}="blkid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}"
# single-session CDs do not have ID_CDROM_MEDIA_SESSION_LAST_OFFSET
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \
IMPORT{builtin}="blkid --noraid"
# probe filesystem metadata of disks
KERNEL!="sr*", IMPORT{builtin}="blkid"
# watch metadata changes by tools closing the device after writing
KERNEL!="sr*", OPTIONS+="watch"
# by-label/by-uuid links (filesystem metadata)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
# by-id (World Wide Name)
ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}"
ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}-part%n"
# by-partlabel/by-partuuid links (partition metadata)
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}"
LABEL="persistent_storage_end"
Что это за файлы и откуда они — /etc/udev/scripts/scsi.sh, /etc/udev/rules.d/99-udev.rules?
Две строчки я закаментил касаемые usb.
Нет, не сто́ит редактировать системные файлы. Проблема в файлах из каталога /etc/udev/, IMHO.
vb_ts3:~# cat /etc/udev/rules.d/99-udev.rules
# There are a number of modifiers that are allowed to be used in some of the
# fields. See the udev man page for a full description of them.
#
# See the udev.rules.examples file for more examples of how to create rules
#
# Note you must use the RUN option if trying to use actual device in script
KERNEL=="fd[0-9]*", SYMLINK=="floppy/%n", RUN+="/etc/udev/scripts/floppy.sh"
KERNEL=="lp[0-9]*", SYMLINK=="printers/%n"
#Usb Keys
#KERNEL=="sd*", ACTION=="add", SUBSYSTEM=="usb", RUN+="/etc/udev/scripts/usb.sh", OPTIONS="last_rule"
#KERNEL=="sd*", ACTION=="remove", RUN+="/etc/udev/scripts/usb.sh", OPTIONS="last_rule"
#Usb Cdrom
#KERNEL=="sr*", ACTION=="add", SUBSYSTEM=="usb", RUN+="/etc/udev/scripts/usbcd.sh"
#KERNEL=="sr*", ACTION=="remove", RUN+="/etc/udev/scripts/usbcd.sh"
#IDE Devices
ENV{DEVTYPE}=="partition", RUN+="/etc/udev/scripts/scsi.sh", OPTIONS="last_rule"
SUBSYSTEM=="block", ENV{ID_CDROM}=="1", ACTION=="add", RUN+="/bin/start-stop-daemon -S -x /bin/cddetect -p /var/run/cddetect -m -b &"
SUBSYSTEM=="block", ENV{ID_CDROM}=="1", ACTION=="change", RUN+="/etc/udev/scripts/scsi.sh", OPTIONS="last_rule"
SUBSYSTEM!="net", GOTO="net_end"
RUN+="/etc/udev/scripts/net.sh"
LABEL="net_end"
tb_ts3:~# cat /etc/udev/scripts/scsi.sh
#! /bin/sh
#
# Mount Hotplug Device
#
echo "1 $DEVPATH" >> /var/log/scsi
echo "2 $ACTION" >> /var/log/scsi
echo "3 $ID_BUS" >> /var/log/scsi
echo "4 $ID_FS_TYPE" >> /var/log/scsi
echo "4 $ID_CDROM_MEDIA" >> /var/log/scsi
devpath=`basename $DEVPATH`
name=`echo $devpath | sed -e "s/[0-9]*//g"`
node=`echo $devpath | sed -e "s/[a-z]*//g"`
TYPE=`echo $name | cut -c 1-2`
no_mount()
{
for i in gparted parted fdisk cfdisk ; do
if [ -n "`pidof $i`" ] ; then
return 0
fi
done
if [ -e /tmp/nomount ] ; then
return 0
else
return 1
fi
}
mounted()
{
if [ "`cat /proc/mounts |grep -c -e $1`" -ne "0" ]; then
return 0
else
return 1
fi
}
if [ "$ACTION" == "remove" ] || [ "$TYPE" == "sr" ] && [ "$ID_CDROM_MEDIA" != "1" ]; then
if [ "$ID_FS_TYPE" == "swap" ]; then
swapoff /dev/$devpath
exit 0
else
while mounted /dev/$devpath ; do
mtpath=`cat /proc/mounts |grep -e /dev/$devpath |tail -n 1 |cut -d ' ' -f 2 |grep -e /mnt`
umount -n -f /dev/$devpath
if [ -n "$mtpath" ] ; then
rmdir $mtpath
fi
done
exit 0
fi
elif no_mount ;then
exit 0
elif [ "$ACTION" == "add" ] && [ "$ID_FS_TYPE" == "swap" ]; then
swapon /dev/$devpath
exit 0
fi
. /etc/thinstation.env
. $TS_GLOBAL
if ! check_module $ID_FS_TYPE ; then
modprobe $ID_FS_TYPE
fi
do_mounts()
{
mkdir -p $mtpath
if [ -n "$mount_opts" ] ; then
MT_CMD="mount -t $ID_FS_TYPE -o $mount_opts /dev/$devpath $mtpath"
else
MT_CMD="mount -t $ID_FS_TYPE /dev/$devpath $mtpath"
fi
echo "5 $MT_CMD" >> /var/log/scsi
$MT_CMD 2>> /var/log/scsi
index=0
while [ -n "`eval echo '$BIND_MOUNT'$index`" ] ; do
MOUNT=`eval echo '$BIND_MOUNT'$index`
FS_LABEL=`echo "$MOUNT" | cut -d ":" -f1`
MT_PATH=`echo "$MOUNT" | cut -d ":" -f2`
if [ "$ID_FS_LABEL" == "$FS_LABEL" ]; then
mkdir -p $MT_PATH
mount --bind $mtpath $MT_PATH
echo "6 $mtpath $MT_PATH" >> /var/log/scsi
fi
let index=index+1
done
}
if [ "$TYPE" == "sr" ] && [ "$ID_CDROM_MEDIA" == "1" ]; then
if [ -e /proc/sys/dev/cdrom ] ; then
echo 0 > /proc/sys/dev/cdrom/autoclose
fi
if is_disabled $LOCK_CDROM ; then
echo 0 > /proc/sys/dev/cdrom/lock
fi
mtpath=/mnt/cdrom$node
mount_opts="$CDROM_MOUNT_OPTIONS"
do_mounts
elif [ "$TYPE" == "sd" ] && [ "$ACTION" == "add" ] ; then
if [ "$ID_BUS" == "usb" ] ; then
if is_enabled $USB_STORAGE_SYNC && [ ! -n "`echo $USB_MOUNT_OPTIONS |grep -e sync`" ]; then
USB_MOUNT_OPTIONS=$USB_MOUNT_OPTIONS,sync
fi
label=$devpath
if [ -n "$USB_MOUNT_USELABEL" ] ;then
if is_enabled $USB_MOUNT_USELABEL ; then
if [ -n "$ID_FS_LABEL" ] ; then
label=$ID_FS_LABEL
fi
elif ! is_disabled $USB_MOUNT_USELABEL ; then
if [ -n "$ID_FS_LABEL" ] ; then
label=$ID_FS_LABEL
else
label=$USB_MOUNT_USELABEL
fi
fi
fi
mtpath=$USB_MOUNT_DIR/$label
let x=0
testmountpoint=$mtpath
while mounted ${testmountpoint} ] ; do
let x=x+1
testmountpoint=$mtpath$x
done
if [ "$testmountpoint" != "$mtpath" ] ; then
mtpath=$testmountpoint
fi
mount_opts="$USB_MOUNT_OPTIONS"
else
if is_enabled $DISK_STORAGE_SYNC && [ ! -n "`echo $DISK_MOUNT_OPTIONS |grep -e sync`" ]; then
DISK_MOUNT_OPTIONS=$DISK_MOUNT_OPTIONS,sync
fi
mtpath=/mnt/disc/$name/part$node
mount_opts="$DISK_MOUNT_OPTIONS"
fi
do_mounts
fi
exit 0
--=XliN=--, вы не пробовали просто удалить/переместить правило /etc/udev/rules.d/99-udev.rules?
Lupo Alberto, еще нет пока. Рабочий день кончился :) все в понидельник. Так хочется чтобы ралотало, а то некоторые врачи работать не могут.