pengpenglin
人,必须选择一种生活方式并有勇气坚持下去
BlogJava
首页
新随笔
新文章
联系
聚合
管理
posts - 262, comments - 221, trackbacks - 0
【Linux学习笔记】分区与目录
【1. 分区与目录概念理解】
Linux的分区是物理上的概念,就像我们把一块硬盘分成C:,D:,E:三个区一样,物理上将存储空间分开
Linux的目录是逻辑上的概念,Linux的目录树实际上是一个分区之间的数据逻辑结构关系,不是物理结构
【2. 分区与目录的关系】
一个分区必须挂载到一个目录下才能使用。分区可以挂载到任何目录。比如说下面我们看到的例子(以RHEL4为例)
[
root@localhost ~
]
# df -lh
Filesystem 容量 已用 可用 已用% 挂载点
/dev/sda3
6
.4G
4
.8G
1
.3G
80
% /
/dev/sda1 99M
8
.4M 86M
9
% /boot
none 494M
0
494M
0
% /dev/shm
/dev/hdc 105M 105M
0
100
% /media/cdrom
df命令是用来汇报磁盘文件系统的空间使用情况的,参数l表示本地文件系统,h表示以人可识别的方式表示(实际上就是以M/G单位来表示,而不是纯粹的数字,难以理解)。我们看到上面命令的结果是:
①左边的信息代表了磁盘文件系统分区:/dev/sda1, /dev/sda3等
②右边的信息分别代表了容量,已用空间,可用空间,百分比,挂载点
③特别注意的是挂载点,它就是我们前面所说的将分区挂载到某一个目录的“那个目录”
④我们看到分区sda1挂载到/boot目录下,而分区sda3挂载到根目录/下
这里我们可以这样理解:
分区是真正存放数据的地方,只有一份数据
目录是分区数据的逻辑映射,就像Windows系统中的快捷方式一样
分区的数据可以挂载到任意多个不同目录,这些目录就像不同名的快捷方式,都指向同样的分区数据
例如下面这样:
[
root@localhost /
]
# df -lh
Filesystem 容量 已用 可用 已用% 挂载点
/dev/sda3
6
.4G
4
.8G
1
.3G
80
% /
/dev/sda1 99M
8
.4M 86M
9
% /boot
none 494M
0
494M
0
% /dev/shm
/dev/hdc 105M 105M
0
100
% /media/cdrom
[
root@localhost /
]
# cd /
[
root@localhost /
]
# ls
bin dev home lib media mnt paul root selinux sys u01 var
boot etc initrd lost+found misc opt proc sbin srv tmp usr
[
root@localhost /
]
# mount /dev/sda1 paul
[
root@localhost /
]
# ls paul
config-
2.6.9
-
5
.EL initrd-
2.6.9
-
5
.EL.img message System.map-
2.6.9
-
5
.EL
grub lost+found message.ja vmlinuz-
2.6.9
-
5
.EL
可以看到原来/dev/sda1分区是挂载到/boot目录下的,现在我把他也挂载到/paul目录下,这样我们就可以在/paul目录下看到和/boot目录同样的内容了,但实际上数据还是只有一份。
【3. 分区的mount和umount】
前面我们提到分区必须挂载到某个特定的目录才能使用,那么假如我们把Linux最重要的分区boot分区和根分区/都不挂载到相应的目录,结果会如何呢?
测试一:卸载/分区
[
root@localhost /
]
# umount /
umount: /: device is busy
umount: /: device is busy
很明显,/分区是不能被umount的。那么boot分区呢?
测试二:卸载boot分区
[
root@localhost /
]
# ls
bin dev home lib media mnt paul root selinux sys u01 var
boot etc initrd lost+found misc opt proc sbin srv tmp usr
[
root@localhost /
]
# umount boot
[
root@localhost /
]
#
测试成功,可见boot分区也是可以被umount的,而/实际上代表了硬盘,所以不能被umount。
【4. umount了boot分区还能再正常启动吗】
前面我们看到了既然boot分区可以被umount掉,那么假如我们umount了boot分区后重启,会不会导致系统启动不了呢?答案是不会。
我们可以到Linux下的/etc/fstab命令来查看Linux启动时的挂载情况及顺序
[
root@localhost boot
]
# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL
=
/ / ext3
defaults
1
1
LABEL
=
/boot /boot ext3 defaults
1
2
none /dev/pts devpts gid
=
5
,
mode
=
620
0
0
none /dev/shm tmpfs defaults
0
0
none /proc proc defaults
0
0
none /sys sysfs defaults
0
0
LABEL
=
SWAP-sda2 swap swap defaults
0
0
# Beginning of the block added by the VMware software
.host:/ /mnt/hgfs vmhgfs defaults
,
ttl
=
5
0
0
# End of the block added by the VMware software
/dev/hdc /media/cdrom auto pamconsole
,
exec
,
noauto
,
m anaged
0
0
/dev/fd0 /media/floppy auto pamconsole
,
exec
,
noauto
,
m
可以看到在该文件中,已经定义了在启动时默认到/boot目录下去寻找启动文件,所以即便我们把boot分区umount掉了,重启后还是能够正常进入的。它是靠什么自动加载的呢?其实fstab 文件中的 defaults 就包含了 "auto" 功能,除非明确指定 noauto ,否则开机都会自动挂载。
注意:这里的前提条件是不改变fstab文件的内容,如果我们把/boot那一行注释掉了,那么就真的启动不了了。
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2008-12-01 22:57
Paul Lin
阅读(2145)
评论(1)
编辑
收藏
所属分类:
Unix / Linux
FeedBack:
#
re: 【Linux学习笔记】分区与目录
2010-01-08 11:14 |
sm-sun
您好,我是初学者,可能对目录与分区还是没能完全理解。
[sm@sm-sun ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 3.9G 3.7G 43M 99% /
tmpfs 250M 524K 249M 1% /dev/shm
/dev/sda1 248M 26M 210M 12% /boot
/dev/sda5 2.8G 274M 2.4G 11% /home
我当时装系统时分区的时候就分了 / boot home 这个三个。在这里看那这三个目录就应该该是分别对应不同的物理分区吧。
[sm@sm-sun ~]$ cd /
[sm@sm-sun /]$ ls
bin dev home lost+found mnt proc sbin srv tmp var
boot etc lib media opt root selinux sys usr
1.那看这里,那boot home这两个目录都是在/里面的,那是不是这两个目录的只是像两个快捷方式那样放在了/目录里面,而他们的实际分区是单独的,不是包含在/目录对应的分区里?
2.而其他的除了boot home 这两个目录外的其他目录是默认生成的,它们的对应的分区就是/目录对应的分区里的一部分吗?
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
【Linux学习笔记】压缩和打包命令
【Linux学习笔记】特殊权限
【Linux学习笔记】文件的寻找
【Linux学习笔记】文件和目录的默认权限与隐藏权限
【Linux学习笔记】文件操作命令
【Linux学习笔记】目录操作命令
【Linux学习笔记】分区与目录
【Linux学习笔记】文件类型与扩展名
【Linux学习笔记】文件权限学习要点
Unix基本概念及入门技术【四】:Solaris下cp命令的若干注意点
<
2008年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(21)
给我留言
查看公开留言
查看私人留言
随笔分类
J2EE 框架(9)
J2EE基础(4)
J2SE(43)
Java 工具(5)
Oracle Concept(4)
Oracle SQL/PLSQL(9)
Oracle 开发(13)
Oracle 管理(4)
Oracle 调优
Oracle 错误诊断
RoR(19)
UML(3)
Unix / Linux(13)
Web基础(19)
其它技术(7)
感悟(3)
杂项(7)
架构与性能(8)
模式与重构(19)
灌水(8)
电影与音乐(16)
走过的路(1)
软件过程与软件方法(3)
阳光户外(2)
项目管理(36)
随笔档案
2012年2月 (3)
2011年11月 (4)
2011年10月 (1)
2011年9月 (2)
2011年8月 (2)
2011年7月 (5)
2011年6月 (3)
2011年5月 (1)
2011年4月 (1)
2011年3月 (3)
2011年1月 (1)
2010年12月 (1)
2010年11月 (5)
2010年10月 (3)
2010年9月 (1)
2010年7月 (1)
2010年6月 (1)
2010年5月 (4)
2010年4月 (9)
2010年3月 (19)
2010年2月 (8)
2010年1月 (3)
2009年12月 (34)
2009年11月 (1)
2009年10月 (2)
2009年7月 (4)
2009年6月 (5)
2009年5月 (3)
2009年4月 (2)
2009年3月 (1)
2009年2月 (5)
2009年1月 (5)
2008年12月 (13)
2008年11月 (4)
2008年10月 (1)
2008年9月 (6)
2008年8月 (5)
2008年7月 (3)
2008年6月 (31)
2008年5月 (10)
2008年4月 (9)
2008年3月 (7)
2008年2月 (4)
2008年1月 (19)
BlogJava热点博客
BeanSoft
Jack.Wang
如坐春风
诗特林
郑晖
银河使者
阿密果
隔叶黄莺
好友博客
无羽苍鹰
搜索
最新评论
1. re: 【Java基础专题】编码与乱码(01)---编码基础[未登录]
666666666666666666666这几天正在做个类似工程编码出现错误
--李
2. re: 【Java基础专题】IO与文件读写---使用Apache commons IO简化文件读写
不错
--阿斯兰
3. re: 【Java基础专题】编码与乱码(03)----String的toCharArray()方法
多谢分享
--thx
4. re: 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换
评论内容较长,点击标题查看
--karl
5. re: 【Java基础专题】编码与乱码(01)---编码基础[未登录]
谢谢,帮了我大忙!
--小龙
阅读排行榜
1. Oracle中如何插入特殊字符:& 和 ' (多种解决方案)(48351)
2. getOutputStream() has already been called for this response的解决方法(43322)
3. 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换(36953)
4. 360安全卫士误删audiosrv.dll文件造成系统无声的解决方案(21210)
5. Java中读取字节流并按指定编码转换成字符串的方法(17300)
评论排行榜
1. 360安全卫士误删audiosrv.dll文件造成系统无声的解决方案(33)
2. 【原】Oracle开发专题之:时间运算(11)
3. 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换(11)
4. getOutputStream() has already been called for this response的解决方法(10)
5. 【原】Oracle开发专题之:分析函数(OVER)(8)