细说挂载
来源:互联网 发布:公众号矩阵 编辑:程序博客网 时间:2024/05/20 07:17
细说linux挂载——mount(一)
(2012-07-20 10:59:26)转载▼
标签:
linux
boot
mount
it
分类: Linux/Shell本文转载自:http://blog.sina.com.cn/s/blog_54f82cc201011j8v.html
原文出自 http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=257333
linux的系统组织方式是——整个系统从根开始,按树形目录依次向下逐渐扩大,分类存放不同用途的文件,/读作“斜线”,英文slash;当其写作一个路径时,第一个/表示根,即root,其他的/表示路径分割符,但都读作“斜线”或“slash”。
系统启动时,首先有一个分区被挂载到了/,可以理解为该分区被分配了/这个奇怪“盘符”(注意,在windows里,这个符号被用做命令参数引导符号,而反斜线\,英文backslash作为路径分割符,习惯不同而已,就像英国行车靠左一样,没啥可奇怪的)。
这 个被挂载为/的分区,就叫做根分区(不管它是主分区还是逻辑分区),它从此开始在整儿linux系统里具有了特殊的地位,因为整儿电脑里的所有硬盘,包括 其上的所有其他分区,不管是主分区、逻辑分区,都将以这个“根分区”为主干,开始构造linux大树,并最终成为这颗树上的一个分支或树叶。整个 linux的系统结构里,有且只有一个root(根分区),不可能有第二个(其实,任何一个分区,都可以挂载为/,windows分区也可以。只不过挂载 根分区的目的是启动系统,如果/下面没有linux内核及其所需的系统文件的话,将无法引导系统而已。所以这个根分区并不神秘)。
你的其他分区只能被继续挂载到/(根分区)下的某个目录里,比如“/mnt”或者“/media”或者“/什么什么”目录,看你喜欢喽。挂载好之后,当你 向这个目录读写数据的时候,其实是在向被挂载到该目录的另一个分区读写数据。多个分区在同一个时候只能被挂载到多个不同的目录,比如“/mnt/a”、“ /media/123”或者“/home/anywhere”,任何一个处于/之下的目录,都可以用来作为挂载其他分区的“平台”,当然系统需要的目录可 不要用哈,你自己新建你自己的用吧。
挂载好之后,你硬盘里的数据,就可以通过类似/path/to/anywhere这样的方式找到;如果没有挂载就找不到喽。
用 一个庸俗的比喻来说,“/”相当于c:\,而“/etc、/bin、/sbin、/lib”这些目录大概相当于c:\windows和c: \program files,“/home”相当于c:\Documents and Settings,而当你把第二分区挂载到“/mnt/partition2”的时候,这个目录就相当于d:\了,你地明白?
不信就挂一次试试:
代码:
cd /mnt (切换到/mnt目录)
sudo mkdir partition2 (新建一个名为partition2的空目录,你可以随意用其他名称)
sudo mount /dev/sda5 partition2 (如果你只有一个硬盘且第二分区是逻辑分区的话,这个命令就将挂载该分区到partition2)
cd partition2 (切换到/mnt/partition2目录)
ls (列出该目录的文件)
sudo mkdir partition2
sudo mount /dev/sda5 partition2
cd partition2
ls
这样应该可以看到你的D盘下的文件了。
既然能挂载就一定能反挂载:
代码:
sudo umount /dev/sda5 (或者/mnt/partition2)
这个命令将“卸载”该分区,现在你再看会发现partition2又是空目录了。
到这里,有人可能会说“linux太麻烦了,我有十几个分区,难道让我每次都要敲几十行命令?为什么不像windows那样启动时就全给我自动挂上呢?”
1. 我是说过要敲命令,可我没说过“每次”!下面将会介绍的fstab文件将会使你在这件事上一劳永逸的解决问题;事实上,甚至还有一种“零”劳永逸的方法,你甚至一个命令都不用敲,点几下鼠标就好了;
2. 像windows那样全自动挂上?也没有问题啊,装上一两个软件即可,不过我想提醒你:
这样真的好吗?未必。我可以肯定,你大多数时间只会使用几个特定的分区;再退一步讲,即使你是例外,但你也应该为别人想想吧?比如我,有一个分区有“敏 感”数据(是啥你自己猜),而且不常用,以前用windows的时候,我对这种做法就很讨厌,谁都可以随便瞅一瞅,不好!后来全搬家到linux分区了, 平时不挂载,要用才挂上,哈哈哈,我的系统我做主!从此不再受那微软的苦~~~
“像windows那样”,你的脑子里为什么每时每刻都在这样想?是因为windows的方法最“好”?也未必,顶多只是你习惯了“那样”而已。试想如果 你从来都用linux的“这样”,然后有一天我突然给你一台windows电脑的时候,你也一样会疑惑的问我:“我的家目录哪去了?”,“为什么不能搞得 像linux那样?”。
承认了吧,所谓“最好”的“那样”是没有的,除了你那个有衰老迹象的思维里,哪儿都没有!赶快活动活动吧。
一个例子______________________________________________________________
/ (这就是著名的根)
├── bin (你在终端运行的大多数程序,比如cp、mv...)
├── boot (内核放在这里,这个目录也经常被作为某个独立分区的挂载点)
│ └── grub (grub引导程序和引导菜单就放在这里)
├── cdrom
├── dev (存放设备文件,这里相当于一个设备管理器,由系统自动生成。视硬件环境不同变化很大)
│ ├── block
│ ├── bsg
│ ├── bus
│ ├── char
│ ├── disk (磁盘信息,要挂载硬盘分区就要注意这里的信息喽)
│ │ ├── by-id (硬盘分区的永久性符号链接)
│ │ ├── by-label (按卷标识别的硬盘分区,常用于挂载)
│ │ ├── by-path (硬盘分区的节点链接)
│ │ └── by-uuid (按UUID识别的硬盘分区,常用于挂载)
│ ├── dri
│ ├── fd
│ ├── input
│ ├── net
│ ├── pts
│ ├── shm
│ └── snd
├── etc (存放所有程序和系统的配制文件和全局变量,对所有用户生效,非常值得备份)
├── home (这就是著名的home目录了,注意不是”家目录”,强烈建议把一个独立分区挂载到这里!)
│ ├── adagio (这才是我真正的家!一般来说目录名就是帐号名,当然也可以不是,随便。命令行中用波浪线~代表这里)
│ ├── MNT (这是我挂载其它硬盘分区的地方,你可以看到用硬盘品牌、容量或用途区分的目录名)
│ │ ├── MAX40NT1 (迈拓40G)
│ │ ├── ST160NT1 (希捷160G第一分区,下面两个类似)
│ │ ├── ST160NT2
│ │ ├── ST160SYS
│ │ ├── ST320G (希捷320G)
│ │ │ ├── MOVIE
│ │ │ ├── MUSIC
│ │ │ └── P2P (电驴、BT的缓冲区)
│ │ ├── ST80G (希捷80G)
│ │ │ ├── PROGRAM
│ │ │ ├── ST80PE
│ │ │ └── YEAR
│ │ └── WD1000 (西数1T)
│ │ ├── WD2
│ │ ├── WD3
│ │ ├── WD5
│ │ ├── WD6.Lib
│ │ └── WD7
│ └── test (我建立的另一个帐号的家目录,专门用于测试,一旦搞到无法收拾的地步,只需简单的
│ 把里面的所有文件删除,就可以恢复默认。实际上你可以拥有无数个帐号)
├── lib (所有程序共享的库文件)
├── lost+found (磁盘扫描出现的丢失的数据)
├── media
├── bin
├── boot
│
├── cdrom
├── dev
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
├── etc
├── home
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
├── lib
├── lost+found
├── media