我有两个独立的控制器,SATA和PATA。 我想将连接到PATA的驱动器重命名为hd [az],将它们的分区重命名为hd [az] [0-9]。 # udevadm info -a -p /sys/block/sdd […] looking at device '[…]/target8:0:1/8:0:1:0/block/sdd': KERNEL=="sdd" SUBSYSTEM=="block" […] looking at parent device '[…]/target8:0:1': KERNELS=="target8:0:1" SUBSYSTEMS=="scsi" […] looking at parent device '[…]': KERNELS=="0000:02:00.1" SUBSYSTEMS=="pci" DRIVERS=="pata_jmicron" 知道我试图写在/etc/udev/rules.d/59-drives.rules新的规则: DRIVERS=="pata_jmicron", SUBSYSTEM=="block", KERNELS=="target8:0:0", NAME="hda" DRIVERS=="pata_jmicron", SUBSYSTEM=="block", KERNELS=="target8:0:1", NAME="hdb" 没有运气,但。 我错过了什么? PS。 持久的块设备命名? 不,谢谢。
我有一个问题创build一个udev规则,设置为sd *(sda,sdb,sdc等)设备/ sys / block /下的max_sectors_kb 1024。 具体来说,最近发生的内核变化意味着最大IO对于我的iSCSI SAN来说太大,所以我试图在启动时将其设置为1024。 我已经尝试从网上的文章以下,但似乎没有一个效果。 ACTION ==“add | change”,SUBSYSTEM ==“block”,RUN + =“/ bin / sh -c'/ bin / echo 1024> / sys%p / queue / max_sectors_kb'” 要么 ACTION ==“add”,ENV {ID_FS_USAGE}!=“filesystem”,ENV {ID_PATH} ==“- iscsi- ”,RUN + =“/ bin / sh -c'echo 64> / sys $ DEVPATH / queue / max_sectors_kb “” […]
我不是100%确定问题在哪里… udev或gnome或… 背景故事: 我有一个“铁拳”。 我有一个udev规则,允许我的IronKey插入我的机器。 在插入之后,我进入gnome桌面,select“Places”/“IronKey”,然后将Ironkey文件系统挂载到/media/IronKey中,然后运行/media/IronKey/linux/ironkey程序,转到gnome桌面,select“Places”/“Ironkey USB”,然后将安全的文件系统挂载到/media/Ironkey USB 问题: 我的同事有一个更新的IronKey。 当他插入时,他进入gnome桌面,select“Places”/“IronKey Unlocker”,然后gnome将Ironkey文件系统挂载到/media/IronKey Unlocker中,然后运行/media/IronKey Unlocker/linux/ironkey程序,进入gnome桌面,select“Places”/“KINGSTON”,将安全文件系统挂载到/media/KINGSTON 我们有一堆依赖IronKey的脚本位于/media/IronKey和/media/Ironkey USB 。 我怎么能告诉udev或gnome或其他什么 当它挂载/media/IronKey Unlocker ,它应该创build一个到/media/IronKey的符号链接 当挂载/media/KINGSTON ,它应该创build一个符号链接到/media/Ironkey USB 当它卸载/media/IronKey Unlocker ,它应该删除/media/IronKey的符号链接 卸载/media/KINGSTON ,应该删除/media/Ironkey USB的符号链接
对于使用systemd的 Linux系统上的ATA和USB存储设备执行引导/热插拔自动挂载, 而不需要GUI或用户必须login的正确方法是什么? 看起来,从udev规则调用mount 不再可以被systemd 接受 (所以旧的规则不再被保证能够工作),并且如果用户没有在本地login, udisk不会自动挂载。 该方法应该有一个方法来包含挂载选项 ,因此可以设置可写性和文件系统掩码,以及在“非正式”卸载(即,在仍然使用的时候取出设备)之后清理 。 注意:已经讨论了使用shell脚本完成此操作的方法,但是有没有办法在不使用脚本的情况下执行此操作? 我想尽可能地坚持直接的软件function,尽pipe如果没有其他的解决scheme,脚本是可以接受的。
我试图在不使用/etc/fstab 情况下使用systemd和udev自动挂载所有ATA / SCSI驱动器。 这是必要的,因为文件系统需要安装在为其UUID命名的目录上,并且驱动器总是被冷交换到新的驱动器,因此不断修改fstab变得单调乏味。 为了做到这一点,我使用了以下脚本 ,systemd 单元文件和udev规则 ,并根据针对USB驱动器的类似问题的答案进行了改编。 但是,尽pipe该答案适用于USB驱动器,但它不适用于ATA / SCSI驱动器 :该脚本似乎能够成功执行并创build所有必需的目录,但启动完成后,将不会挂载任何内容。 但是,脚本在手动运行时工作 。 /usr/local/bin/automount.sh : #!/bin/bash ACTION=$1 DEVBASE=$2 DEVICE="/dev/${DEVBASE}" SAVE="/root/${DEVBASE}" # See if this drive is already mounted, and if so where MOUNT_POINT=$(/bin/mount | /bin/grep ${DEVICE} | /usr/bin/awk '{ print $3 }') do_mount() { if [[ -n ${MOUNT_POINT} ]] then echo "Warning: ${DEVICE} […]
我有一台笔记本电脑,我运行Arch Linux。 我的笔记本电脑有一个旋转的硬盘,而不是一个固态硬盘,所以我讨厌交换。 但是,我需要一个hibernate,并且每次按下电源键或电池电量不足时,我都希望笔记本电脑进入hibernate状态。 我现在的想法是在systemd-hibernate.service启动之前有swapon 。 (当然,觉醒后也可以swapoff 。) 为此,我做了一个dev-sda7.swap单元。 其操作简单明了: [Unit] Description=Hibernate swapon DefaultDependencies=false TimeoutStopSec=infinity [Swap] What=/dev/sda7 我希望将它绑定到sleep.target , hibernate.target或systemd-hibernate.service以便在hibernate之前启动它,并在刚刚停止之后停止。 但事情并没有那么顺利。 现在我有dev-sda7.swap停止,如果我添加PartOf=sleep.target &我已经开始之前systemd-hibernate.service如果我添加WantedBy=systemd-hibernate.service & Before=systemd-hibernate.service 。 这听起来像是成功,但事实并非如此。 logind.conf指定HandlePowerKey=hibernate ,据我所知,它调用systemctl hibernate 。 (也许这是更复杂的,我不知道) systemctl hibernate但是不会发出start systemd-hibernate.service除非集成的交换检查传递,这是不会发生,直到start systemd-hibernate.service发出。 我希望你能看到这里的复杂。 我想使用systemd的逻辑来启动我的交换。 所以我收集我必须以某种方式从logind删除交换检查。 否则,也许有一种方法可以在检查之前运行一个脚本 – 一个脚本,可以swapon 。 一个专门的/etc/udev/rules.d/99-lowbat.rules指定一个任意的命令来运行时,电源运行低,这可以systemctl start systemd-hibernate.service 。 我想知道是否有一个udev规则,当按下电源键时运行一个命令。 然后我可以完全没有logind。 你能告诉我什么? 我们在Arch Linux论坛上进行了一些讨论 ,帮助build立了证据,但没有提供任何解决scheme。
我最近遇到了一些与testing服务器有关的问题。 它是几天前安装的,一直工作到昨天,重启后没有唤醒。 Bootloader没有find根设备。 错误: Gave up waiting for root device. ALERT! /dev/mapper/vg_mru-lv_mru_root does not exists. dropping to shell! 我在恢复shell,装入设备,chroot进入系统启动,一切正常,所以我只是增加了rootdelay到90s,并重新启动。 所以它工作了一天。 但现在我得到同样的错误,其次是: udevd[112]: worker [119] unexpectedly returned with status 0x0100 udevd[112]: worker[119] failed while handling '/devices/virtual/block/md0' udevd[112]: worker [120] unexpectedly returned with status 0x0100 udevd[112]: worker[120] failed while handling '/devices/virtual/block/md1' 如果我等待大约5分钟,然后写入退出INT intramfsshell,启动继续照常和计算机变得function齐全。 在消息中,有几十行: Sep 30 21:58:48 […]
我有一个在PCI Express插槽中有多个采集卡的机器。 为了便于排除故障,我希望在插入设备或将设备从机器上拔下时,设备会按照其物理位置的顺序出现在操作系统上。 这里是我从命令lspci | grep lackmagic得到的设备列表 lspci | grep lackmagic 0a:00.0 Multimedia video controller: Blackmagic Design Device a117 0d:00.0 Multimedia video controller: Blackmagic Design Device a117 10:00.0 Multimedia video controller: Blackmagic Design Device a117 18:00.0 Multimedia video controller: Blackmagic Design Device a117 1b:00.0 Multimedia video controller: Blackmagic Design Device a117 1e:00.0 Multimedia video controller: […]
我想触发使用CoreD下的udev磁盘添加/删除脚本。 目的/目标是自动挂载ceph数据分区到一个特定的目录,准备在ceph-docker中启动/停止osd。 1)首先,CoreOS使用systemd。 我应该做一个systemd的方式,或者我只是在/etc/udev/rules.d下创build我的文件? (默认情况下不存在的目录)。 2)可以说,我设法通过udev检测磁盘,并用设备文件名触发一个脚本。 如何读取/ dev / sda并确定它是否是一个ceph磁盘。 即我想检查typecode。 它需要是4fbd7e29-9d25-41b8-afd0-062c0ceff05d
我试图对Linux CentOS 5.5上的sunrpc.tcp_slot_table_entries进行持续更改。 这个值对于我们的NFS客户端的性能非常重要,并且必须在NFS挂载完成之前设置。 简单地把值放在/etc/sysctl.conf中不起作用,因为在加载sunrpc模块之前执行/etc/rc.d/rc.sysinit (执行sysctl -p)。 与RHEL 4相同的问题: http://amitgud.blogspot.com/2006/07/sysctl-for-late-comers.html https://bugzilla.redhat.com/show_bug.cgi?id=189311 我尝试过了: 在/etc/modprobe.conf (和/etc/modprobe.d/sunrpc )中install sunrpc /sbin/modprobe -q –ignore-install sunrpc;/sbin/sysctl -w sunrpc.tcp_slot_table_entries=64 在SUBSYSTEM=="module" ACTION=="add" DEVPATH=="*/sunrpc" RUN+="/sbin/sysctl -w sunrpc.tcp_slot_table_entries=64"放置SUBSYSTEM=="module" ACTION=="add" DEVPATH=="*/sunrpc" RUN+="/sbin/sysctl -w sunrpc.tcp_slot_table_entries=64" (也许必须更改为CentOS 5) /etc/udev/rules.d/23-sunrpc.rules但无济于事。 而且我不想修改/etc/init.d/netfs (来自initscripts包)。 那么,你有没有在CentOS 5上成功做到这一点,如果是的话,怎么样? 编辑:在/etc/modprobe.d/modprobe.conf.distfind: install sunrpc /sbin/modprobe –first-time –ignore-install sunrpc && { /bin/mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs > […]