文章

udev挂载磁盘

https://www.ibm.com/developerworks/cn/linux/l-cn-udev/index.html 玩转udev https://blog.csdn.net/skyflying2012/article/details/9372463 玩udev

# 添加rules ACTION=="add", KERNEL=="eth1", SUBSYSTEM=="net", DRIVERS=="", ATTR{type}=="1", PROGRAM="/usr/bin/add_net.sh" # 网卡 ACTION=="add", KERNEL=="vd?", SUBSYSTEM=="block", RUN="/usr/bin/xxx.sh" # 硬盘 udev 在调用系统的mount 时需要修改udev服务 cp /usr/lib/systemd/system/systemd-udevd.service /etc/systemd/system/systemd-udevd.service vim /etc/systemd/system/systemd-udevd.service 修改slvae shared systemctl daemon-reload systemctl enable systemd-udevd.service systemctl start systemd-udevd.service # 硬盘挂载脚本 (配合openstack user-date使用) # !/bin/bash # by jeff 20181111 # udev srcipt add block mount disk to path PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' set_disk(){ Mkfs="mkfs.xfs -f" Type="xfs" disk_maps="`curl -s http://1.2.3.4/latest/user-data | grep '^/dev/vd' | xargs`" all_disks="`lsblk -dn | awk '{print $1}' | grep -v "vda" | xargs`" for dk in ${all_disks} do df | grep "^/dev/${dk}" &>/dev/null && continue ls /sys/class/block/${dk}/${dk}* &>/dev/null && continue dk_mount_path="`echo ${disk_maps} | egrep -o \"/dev/${dk}:/[a-z0-9]+[/a-z0-9]*\" | cut -d: -f 2`" if ! blkid /dev/${dk} &>/dev/null;then ${Mkfs} /dev/${dk} fi dk_uuid="`blkid /dev/${dk} | cut -d'\"' -f 2`" [ -d "${dk_mount_path}" ] || mkdir -p ${dk_mount_path} if ! cat /etc/fstab | grep -w "${dk_mount_path}" &>/dev/null; then echo "UUID=${dk_uuid} ${dk_mount_path} ${Type} defaults 0 0" >> /etc/fstab fi done mount -a } set_disk
本文由作者按照 CC BY 4.0 进行授权