好久不写博客了 ,在这次的博客里,我把今晚学习到的内容和大家分享一下,就是linux下面的挂载磁盘和卸载磁盘的方法
platform:elementary os (基于ubuntu 12.04)
用到的相关命令有
1. mount (挂载)
2.fuser (当你卸载设备失败是,用它来察看占用设备的进程)
3.lsusb (显示usb 的情况)
4.lsblk (现实电脑识别的所有设备,不管他是否已经被挂载)
(一)挂载磁盘或者是iso文件
1.iso 文件挂载方法
首先,应该在/media下面创建一个来挂载那个iso文件的文件夹,然后 使用挂载命令进行挂载
mount基本命令(-t 参数指定把我要挂载的文件 设置为什么格式)
mount -t iso9660 -o loop 你的设备的路径 要挂载到的路径
以我的电脑挂载opensuse为例:
先在/media下面创建opensuse文件夹
1.0 mkdir -p /media/opensuse
我的iso文件在/media/baby/iso/openSUSE-12.3-KDE-Live-i686.raw ,所以使用的命令是
1.1sudo mount /media/baby/iso/openSUSE-12.3-KDE-Live-i686.raw /media/opensuse
然后挂载完毕。你现在可以在/media/opensuse下面看到挂载的iso文件了
1.2卸载方法,使用 umount 可以做到
以我为例
sudo umount /media/opensuse或则 sudo umount /media/baby/iso/openSUSE-12.3-KDE-Live-i686.raw
也就是说你既可以用/media目录下的文件夹作为参数,也可以把原始文件作为参数来卸载
2.普通分区挂载方法
我安装的系统是双系统,win7和elementary os ,所以我把win7下面的c盘挂载到linux
2.1 首先 你要找到要挂载的磁盘的路径,使用方法lsblk
这里有点纠结的地方,就是他不显示盘符的名字,我暂时还没有想到方法,但是我自己安装的系统,所以我知道c盘就是/dev/sda2,因为我知道我给c盘分了多大的空间,实在不行你先挂载了打开看一下就懂了,(你可能会问,图片上只显示了例如sda1 sda2之类的分区,你为什么在使用的时候在前面加上/dev/xxx 呢? ,如果你不太了解linux 的文件系统的话,你就把他当作国际惯例算了)
方法也很简单
在/media下面创建一个 文件夹,我以创建c/为例
然后 mount /dev/sda2/ /media/c(把sda2分区挂载到 /media/c 目录下面)就可以了 很简单把?
卸载方法大同小异
sudo umount /dev/sda2 或则 sudo umount /media/c (因为我把他挂载在/media/c 这个目录下,所以可以这样卸载)
ps 为什么我在上面的命令没有用-t选项呢? 因为系统能自动识别文件类型,所以这个选项可以省略
如果你非要指定不可,有如下选择
ext2
ext3
ext4
vfat windows 下面的FAT16/FAT32文件系统
ntfs windows下面的NTFS系统(注意,这种文件系统被挂载后在linux下面显示的是fuserblk)
iso9660 标准的iso文件格式
(二)察看已经挂载的设备
很简单 使用
mount 命令
你可以清楚的看到 我已经挂载的opensue.raw 和 我win7里面一个叫做baby 的磁盘 (你妹的,截图居然不能超过200k 我只能贴文字了) 有点乱 你自己认真看一下,
/dev/sda7 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda9 on /home type ext4 (rw)
gvfs-fuse-daemon on /home/tcstory/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=tcstory)
/dev/sda6 on /media/babytype fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/media/baby/iso/openSUSE-12.3-KDE-Live-i686.raw on /media/opensuse type iso9660 (ro)
(三)挂载usb(后来我才发现,lsusb这个命令其实可以不用,lsblk就可以看到了,但是lsusb更多的现实了你在笔记本插入的外接键盘之类的信息)
首先要说明的是,在挂载之前,你必须确认电脑已经发现了当前的usb设备,假如插头松了你也没有发现就用了mount 命令也白搭 ,对吧?
lsusb 察看usb
我的电脑插入了 台电的mp3 但是在上图中你可能一下子看不出来是哪一个 ,注意到Media player 了吗? 就是他了 ,你自己要思考一下才能判断, 既然识别了usb 那么就可以挂载他了
接下来 察看usb 的“路径” (这个用词可能不太准确)
使用lsblk
看到了吗? 那个3.7G大小的就是我的mp3,以后你要有点常识,一般本地磁盘上的分区,是以sda开头的,usb之类的外部插入的介质是以sdb开头的
好的 接下来挂载
sudo mount /dev/sdb /madia/usb (usb这个文件夹是我之前已经创建好的,所以下,你也可以直接把文件挂载到/media目录下,但是 当你再想挂载别的文件的时候,原先挂载的文件会被后来的文件覆盖掉,)
题外话,随便给大家看一下,我插入我的android手机手 上面命令的显示
lsusb
lsblk
(四)卸载出现错误
他会提示你设备正在使用中,你可以 用fuser 来察看到底是谁占用了设备
默认的命令为 fuser -vm 设备的地址
例如fuser -vm /media/opensuse
我做测试的时候 ,占用的进程就是 31718
这个时候,你可以kill掉他,或则直接用fuser 处理他 fuser 有如下几个参数比较使用
-i 提醒用户(假如我要关闭这个占用的进程,在fuser关闭前他会询问我)
-k 关闭占用的进程
普通的察看占用进程可以用这个
fuser -vm /media/opensuse/
暴力的关闭方法 fuser -vmk /media/opensuse/ (如果没有 -i选项,他会一下子关闭所以占用的进程,否则就会一个一个询问)