树莓派学习14: 使用U盘

  • gtrjolin1986
  • LV6工程师
  • |      2013-08-09 09:13:16
  • 浏览量 5955
  • 回复:10

原理:

在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




  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:10
思索天地 2014-03-26

学习了 谢谢

0   回复
举报
发布
铁流 2014-03-26
学习学习,谢谢
0   回复
举报
发布
shfluke 2014-03-11
看看,学习。
0   回复
举报
发布
飞翔的猪 2014-02-11
不好好
0   回复
举报
发布
娃娃卡 2014-02-05
hh
0   回复
举报
发布
david 2014-01-27
学习学习自学习
0   回复
举报
发布
赤旗 2013-12-23
学习!!!!!!!!
0   回复
举报
发布
ck 2013-12-12

看看



0   回复
举报
发布
无情3 2013-11-24

学习学习

 

0   回复
举报
发布
zweg 2013-09-11
vvvvvvvvvvvvvvvvvvv
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子