原理:
在linux中,插入U盘,系统识别后,则会自动在 /dev 目录增加一个设备文件, 名为 /dev/sda1 或 sda2 或 sdb1...
然后,可以用mount命令把这个设备挂接到一个空的目录中。完成后,该目录即是这个U盘,按权限读写即可。
使用完毕,用umount命令将这个目录卸载,再取出U盘即可。
在树莓派中操作如下
1, 在插入U盘前,用 ls 命令查看一下设备文件
ls /dev/sd*
可以看到,没有文件
2, 插入U盘, 再用ls 命令查看一下设备文件
ls /dev/sd*
可以看到,有两个文件 sda , sda1
其中 sda1就是U盘
3, 建立一个子目录,用于挂接
进入主目录
cd ~
生成一个子目录
mkdir usbdisk
4,使用mount命令挂接。mount命令必须使用 root 权限,所以要用sudo
sudo mount -o rw /dev/sda1 /home/~/usbdisk
-o 表示选项, rw是读写, 这种写法是root用户有读写权限
/dev/sda1 是要mount的设备
/home/~/usbdisk 是要mount到的目录
mount成功后,进入usbdisk,用ls 查看一下,就可以看到U盘中的文件了
cd usbdisk
ls
如果当前用户不是root,而是pi,则这个usbdisk目录是不能写入的。因为mount命令是用root用户身份执行的,没有定义用户pi的读写权限
如果要用户pi也可以读写,则要使用以下mount命令参数
sudo mount -o uid=pi,gid=pi /dev/sda1 /home/~/usbdisk
-o 表示选项, uid=pi,gid=pi 表示用户及组都是pi(则用户pi可读写)
mount成功后,进入usbdisk,用ls 查看一下,用mkdir可以创建子目录了(即,可以读写了)
cd usbdisk
ls
mkdir test
5, U盘使用完毕,须使用umount命令卸载。umount命令必须使用 root 权限,所以要用sudo
sudo umount /home/~/usbdisk
umount时,要卸载的目录必须没有被使用(比如:某个程序正在打开文件等),如果有,则退出相关程序。
并且,umount时,当前目录不能是要卸载的目录。如果是,则需修改当前目录,比如: cd /
如果umount不成功,多数是上述原因
6, umount成功后,则可以拨出U盘了
这个过程还是比较麻烦的,如果要一插入U盘,系统就自动挂接,则需安装一个软件 usbmount。 如下:
安装 usbmount
sudo apt-get install usbmount
安装完成后,系统就可以自动识别并挂接U盘的,
插入U盘,则系统将自动把U盘挂接到 /media/usb0 目录中 (如果有第二个U盘,则挂接到 /media/usb1 中,如此类推)
试一下,还挺好用的。
不过,usbmount 自动挂接U盘的权限是root用户可读写。如果当前不是root, 不修改权限则写不了。
参考:
http://raspi.tv/2012/mount-a-usb-flash-drive-on-raspberry-pi
http://elinux.org/RPi_Adding_USB_Drives
|