linux磁盘符变化autofs,请问如何通过autofs实现移动硬盘的自动挂载

添加一下内容到/etc/udev/rules.d/10-my-udev.rules里

KERNEL=="sd[b-z]", NAME="%k", SYMLINK+="usbhd-%k", GROUP="users",

OPTIONS="last_rule"

ACTION=="add", KERNEL=="sd[b-z][0-9]", SYMLINK+="usbhd-%k",

GROUP="users", NAME="%k"

ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p

/media/usbhd-%k"

ACTION=="add", KERNEL=="sd[b-z][0-9]", PROGRAM=="/lib/udev/vol_id

-t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o

rw,utf8=true,codepage=936,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111

/dev/%k /media/usbhd-%k", OPTIONS="last_rule"

ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mount -t auto -o

rw,locale=zh_CN.UTF-8,noauto,sync,dirsync,noexec,nodev,noatime

/dev/%k /media/usbhd-%k", OPTIONS="last_rule"

ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l

/media/usbhd-%k"

ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rm -rf

/media/usbhd-%k", OPTIONS="last_rule"

14.6.1

IDE硬盘

基本上所有的IDE硬盘都会被Linux系统识别并且驱动,如果没有驱动程序,我们还可以按照前面所述的方法去试着寻找。在IDE硬盘被驱动之后,在软件中的设置一般首先是用/dev/MAKEDEV创建硬盘设备(如果当前系统中不存在的话)。例如添加一个IDE硬盘设备:

cd /dev

# ./MAKEDEV hdc

然后创建分区设备:

# ./MAKEDEV hdc1

# ./MAKEDEV hdc2

注意分区设备在Linux中一般是以1开始的。其余的操作还包括利用fdisk或者parted对/dev/hdc进行分区及格式化等操作,这些详细操作在第十一章《文件系统》中已经描述得很清楚,就不再赘述了。

14.7 USB硬盘

USB移动硬盘以其易用性和方便性受到广大计算机使用者的欢迎,当前版本的Linux一般都支持USB设备的即插即用,插到系统中之后就可以自动识别。我们在使用USB硬盘的时候,可以在插上之后直接用第小节的介绍的方法去挂接USB盘,如果不成功,再回头来看一看USB检测小节的内容是否可以解决问题。

14.7.1

USB硬盘的检测

USB设备检测也是通过/proc目录下的USB文件系统进行的。为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。

现在一般的USB桥接器模块有三种类型,UHCI、OHCI和EHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文件来决定。打开此文件如果发现USB节为

I/O at

0xHHHH格式(例如“I/O at 0xe000 [0xe01f]”),HHHH为16进制数,则桥接器类型为UHCI。如果是32 bit memory at 0xHH000000形式(例如“32 bit memory at 0xee000000”),HH为16进制数,则桥接器类型为OHCI。EHCI是USB2.0版本的类型,如果使的是USB2.0版本,则需要选用这个选项。如果我们的桥接器类型不满足上述任何一种情况,唯一的解决办法就是分别尝试插入这两种模块,直到成功为止。一般而言,UHCI类型桥接器的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器插入模块是ohci或usb-ohci。

我们在正确的插入了桥接器模块之后,/proc文件系统下就会出现USB设备目录,不过此时这个目录是空的,没有任何文件。下一步是挂接usbdevfs文件系统,然后通过此文件系统检测连接的设备。挂接usbdevfs文件我们可以通过如下操作实现:

# mount -t usbdevfs none

/proc/bus/usb

如果成功挂接,就会生成文件/proc/bus/usb/devices,/proc/bus/usb/drivers和目录/proc/bus/usb/busNo。下面查看一下USB模块:

# lsmod

Module

Size Used by

Not tainted

nls_iso8859-1

3516

1 (autoclean)

nls_cp437

5116

1

(autoclean)

vfat

13004

1

(autoclean)

fat

38808

0

(autoclean) [vfat]

usb-storage

69332 1

sd_mod

13516 2

(autoclean)

scsi_mod

107160

2

(autoclean) [usb-storage sd_mod]

autofs

13268 0

(autoclean) (unused)

e100

60644

1

keybdev

2944 0

(unused)

mousedev

5492

0

(unused)

hid

22148

0

(unused)

input

5856

0

[keybdev mousedev hid]

usb-uhci

26348 0

(unused)

usbcore

78784

1

[usb-storage hid usb-uhci]

ext3

70784

2

jbd

51892

2

[ext3]

如果列表中不存在上面所显示的usb-storage、usb-uhci、usbcore等模块,说明还没有加载。那么我们用modprobe加载:

# modprobe usb-storage

# modprobe scsi_mod

# modprobe sd_mod

下一步就可以尝试插入USB硬盘并使用了。

14.7.2

USB硬盘的使用

将USB硬盘插到计算机上之后,会被自动识别,USB设备文件与SCSI一样,是sd开头。我们输入fdisk –l可以查看到已经连接成功的USB硬盘的情况:

# fdisk -l |more

Disk /dev/sda: 10.0 GB, 10056131072

bytes

255 heads, 63 sectors/track, 1222

cylinders

Units = cylinders of 16065 * 512 = 8225280

bytes

Device Boot

Start

End

Blocks Id System

/dev/sda1

1

1222

9815683+

c Win95 FAT32

(LBA)

这说明USB硬盘大小是10G,上面有一个分区是/dev/sda1,文件系统类型是FAT32。使用USB硬盘与其他类型的硬盘一样,也需要挂接然后访问。

# mkdir /mnt/usb

# mount –t vfat /dev/sda1 /mnt/usb

然后从/mnt/usb挂接点就可以访问USB盘了,注意由于此USB盘使用的是FAT32格式,所以内核也必须支持FAT32才行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值