Linux 查看磁盘分区、文件系统、使用状况的命令和相关工具介绍node
1、df 命令;
df 是来自于coreutils 软件包,系统安装时,就自带的;咱们经过这个命令能够查看磁盘的使用状况以及文件系统被挂载的位置;举例:linux
[root@localhost beinan]# df -lhwindows
Filesystem容量已用 可用 已用% 挂载点缓存
/dev/hda811G6.0G4.4G58% /ide
/dev/shm236M0236M0% /dev/shm工具
/dev/sda156G22G35G39% /mnt/sda1性能
咱们从中能够看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;其它的参数请参考 man df
2、fdsik
fdisk 是一款强大的磁盘操做工具,来自util-linux软件包,咱们在这里只说他如何查看磁盘分区表及分区结构;参数 -l ,经过-l 参数,能得到机器中全部的硬盘的分区状况;ui
[root@localhost beinan]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 765 6144831 7 HPFS/NTFS
/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)
/dev/hda3 2806 7751 39728745 5 Extended
/dev/hda5 2806 3825 8193118+ 83 Linux
/dev/hda6 3826 5100 10241406 83 Linux
/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris
/dev/hda8 5199 6657 11719386 83 Linux
/dev/hda9 6658 7751 8787523+ 83 Linuxspa
在上面Blocks中,表示的是分区的大小,Blocks的单位是byte ,咱们能够换算成M,好比第一个分区/dev/hda1的大小若是换算成M,应该是6144831/1024=6000M,也就是6G左右,其实没有这么麻烦,粗略的看一下把小数点向前移动三位,就知道大约的体积有多大了;
System 表示的文件系统,好比/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系统;. 在此例中,咱们要特别注意的是/dev/hda3分区,这是扩展分区;他下面包含着逻辑分区,其实这个分区至关于一个容器;从属于她的有 hda5,hda6,hda7,hda8,hda9 ;咱们还注意到一点,怎么没有hda4呢?为何hda4没有包含在扩展分区?一个磁盘最多有四个主分区; hda1-4算都是主分区;hda4不可能包含在扩展分区里,另外扩展分区也算主分区;在本例中,没有hda4这个分区,固然咱们能够把其中的一个分区设置为主分区,只是我当时分区的时候没有这么作而已;再仔细统计一下,咱们看一看这个磁盘是否是还有空间?hda1+hda2+hda3=实际已经分区的体积,因此咱们能够这样算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),换算成M单位,小数点向前移三位,因此目前已经划分好的分区大约占用体积是62259.876(M),其实最精确的计算62259876/1024=60800.67(M);而这个磁盘大小是80.0 GB (80026361856byte),其实实际大小也就是78150.744(M);经过咱们一系列的计算,咱们能够得出这个硬盘目前还有使用的空间;大约还有18G未分区的空间; fdisk -l 能列出机器中全部磁盘的个数,也能列出全部磁盘分区状况;好比:操作系统
[root@localhost beinan]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 765 6144831 7 HPFS/NTFS
/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)
/dev/hda3 2806 7751 39728745 5 Extended
/dev/hda5 2806 3825 8193118+ 83 Linux
/dev/hda6 3826 5100 10241406 83 Linux
/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris
/dev/hda8 5199 6657 11719386 83 Linux
/dev/hda9 6658 7751 8787523+ 83 Linux
Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 57231 58604528 83 Linux
经过上面咱们能够知道此机器有两块硬盘,咱们也能够指定fdisk -l 来查看其中一个硬盘的分区状况;
[root@localhost beinan]# fdisk -l /dev/sda
Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 57231 58604528 83 Linux
经过上面状况能够知道,在/dev/sda 这个磁盘中,只有一个分区;使用量差很少是百分百了;咱们还能够来查看 /dev/hda的
[root@localhost beinan]# fdisk -l /dev/hda
本身试试看?
3、cfdisk 来自于util-linux的软件包;
cfdisk 也是一款不错的分区工具;在有些发行版中,此工具已经从util-linux包中剔除;cfdisk 简单易用是他的特色;和DOS中的fdisk 类似;在本标题中,咱们只来解说如何查看机器的中的磁盘分区情况及所用的文件系统等;查看磁盘分区的用法 cfdisk -Ps 磁盘设备名;
好比
[root@localhost beinan]cfdisk -Ps
[root@localhost beinan]cfdisk -Ps /dev/hda
[root@localhost beinan]cfdisk -Ps
Partition Table for /dev/hda
First Last
# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
1 Primary 0 23438834 63 23438835 Linux (83) Boot
2 Primary 23438835 156296384 0 132857550 Extended (05) None
5 Logical 23438835 155268224 63 131829390 Linux (83) None
6 Logical 155268225 156296384 63 1028160 Linux swap (82) None
咱们只用的参数 -Ps,就列出了磁盘的分区状况;目前在Slackware Debian Mandrake 等主流发行版中存在cfdisk ,而fedora 4.0把这个小工具剔除了;有点惋惜;这是我在Slackware中操做的;若是您这样操做,就更直观了;
[root@localhost beinan]cfdisk 磁盘设备名
举例:
[root@localhost beinan]cfdisk /dev/hda
您所看到的是以下的模式:
cfdisk 2.12a
Disk Drive: /dev/hda
Size: 80026361856 bytes, 80.0 GB
Heads: 255 Sectors per Track: 63 Cylinders: 9729
Name Flags Part Type FS Type [Label] Size (MB)
-------------------------------------------------------------------------------------------
hda1 Boot Primary Linux ReiserFS 12000.69
hda5 Logical Linux ReiserFS 67496.65
hda6 Logical Linux swap 526.42
[Bootable] [ Delete ] [ Help ] [Maximize] [ Print ] [ Quit ]
[ Type ] [ Units ] [ Write ]
Toggle bootable flag of the current partition
您进入了cfdisk 的操做界面;用键盘移动指针到[Quit]就能够退出;
4、parted 功能不错的分区工具;在Fedora 4.0中有带,能够本身安装上;在此主题中,咱们只说如何查看磁盘的分区状况;
调用方法简单,parted 默认是打开的设备是/dev/hda ,也能够本身指定;好比 parted /dev/hda 或/dev/sda 等;退出的方法是 quit
[root@localhost beinan]# parted
使用 /dev/hda
(parted) p
/dev/hda 的磁盘几何结构:0.000-76319.085 兆字节
磁盘标签类型:msdos
Minor 起始点终止点类型文件系统标志
1 0.031 6000.842 主分区 ntfs 启动
2 6000.842 22003.088 主分区 fat32 lba
3 22003.088 60800.690 扩展分区
5 22003.119 30004.211 逻辑分区 reiserfs
6 30004.242 40005.615 逻辑分区 reiserfs
7 40005.646 40774.350 逻辑分区 linux-swap
8 40774.381 52219.094 逻辑分区 ext3
9 52219.125 60800.690 逻辑分区 reiserfs
咱们在partd 的操做面上,用p就能够列出当前磁盘的分区状况,若是想要查看其它磁盘,能够用 select 功能,好比 select /dev/sda ;
5、qtparted ,与parted 相关的软件还有qtparted ,也能查看到磁盘的结构和所用的文件系统,是图形化的;
[beinan@localhost ~]# qtparted 图形化的查看,一目了然;
6、sfdisk 也是一个分区工具,功能也多多;咱们在这里只说他的列磁盘分区状况的功能;
[root@localhost beinan]# sfdisk -l
本身看看吧; sfdisk 有几个颇有用的功能;有兴趣的弟兄不妨看看;
7、partx 也简要的说一说,有些系统自带了这个工具,功能也简单,和fdisk 、parted、cfdisk 来讲不值一提;不用也罢;
用法: partx 设备名
[root@localhost beinan]# partx /dev/hda
# 1: 63- 12289724 ( 12289662 sectors, 6292 MB)
# 2: 12289725- 45062324 ( 32772600 sectors, 16779 MB)
# 3: 45062325-124519814 ( 79457490 sectors, 40682 MB)
# 4: 0- -1 ( 0 sectors, 0 MB)
# 5: 45062388- 61448624 ( 16386237 sectors, 8389 MB)
# 6: 61448688- 81931499 ( 20482812 sectors, 10487 MB)
# 7: 81931563- 83505869 ( 1574307 sectors, 806 MB)
# 8: 83505933-106944704 ( 23438772 sectors, 12000 MB)
# 9: 106944768-124519814 ( 17575047 sectors, 8998 MB)
8、查看目前机器中的全部磁盘及分区状况:
[beinan@localhost ~]$ cat /proc/partitions
major minor #blocks name
3 0 78150744 hda
3 1 6144831 hda1
3 2 16386300 hda2
3 5 8193118 hda5
3 6 10241406 hda6
3 7 787153 hda7
3 8 11719386 hda8
3 9 8787523 hda9
8 0 58605120 sda
8 1 58604528 sda1
9、mac-fdisk 这个工具主要是用在Powerpc版本的Linux中,我们经常使用X86版本中没有这个工具;这个只是介绍一下;
相关文档《在Linux系统中存储设备的两种表示方法》
《合理规划您的硬盘分区》
《系统引导过程及硬盘分区结构论述》
《Linux 查看磁盘分区、文件系统、使用状况的命令和相关工具介绍》
《实例解说 fdisk 使用方法》
《在Fedora core 4.0 加载NTFS和FAT32分区详述》
《Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践》
10、如何判断内存使用状况!
你们注意的是,这里的内存指的是linux下的内存处理方式. 我告诉有朋友我一直用linux.他问我了一下我为何linux使用的内存这么高.他讲他1G的内在free才232M.而win xp才用200M的样子
其实啊.linux的内存是很说究的.以下命令free是显示的当前内存的使用,-m参数的意思是M字节来显示内容.咱们来一块儿看看.
$ free -m
total used free shared buffers cached
Mem: 1002 769 232 0 62 421
-/+ buffers/cache: 286 715
Swap: 1153 0 1153
第一部分Mem行:
total 内存总数: 1002M
used 已经使用的内存数: 769M
free 空闲的内存数: 232M
shared 当前已经废弃不用,老是0
buffers Buffer 缓存内存数: 62M
cached Page 缓存内存数:421M
关系:total(1002M) = used(769M) + free(232M)
第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是能够挪用的内存总数。
第三部分是指交换分区, 我想不讲你们都明白.
我想你们看了上面,仍是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为何这么奇怪.
其实咱们能够从二个方面来解释.
对操做系统来说是Mem的参数.buffers/cached 都是属于被使用,因此它认为free只有232.
对应用程序来说是(-/+ buffers/cach).buffers/cached 是等同可用的,由于buffer/cached是为了提升程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
因此,以应用来看看,以(-/+ buffers/cache)的free和used为主.因此咱们看这个就行了.另外告诉你们一些常识.Linux为了提升磁盘和内存存取效率, Linux作了不少精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采起了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(好比read,write,getdents)的时间。
记住内存是拿来用的,不是拿来看的.不象windows, 不管你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为何经常提示虚拟空间不足的缘由.大家想一想,多无聊,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.因此咱们看linux,只要不用swap的交换空间,就不用担忧本身的内存太少.若是经常 swap用不少,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准。