学习笔记(七)——Linux 磁盘管理
Linux 磁盘管理:
1.1常用命令: df du fdisk
(1)df 命令用来查看分区的使用情况:
[root@localhost~]# df –h //以相应单位显示分区大小
[root@localhost~]# df –h --total //最后一行汇总显示磁盘使用的总体情况
[root@localhost~]# df –i //查看 inode 的使用情况
[root@localhost~]# df – T //查看分区的文件系统类型
补充:在使用 df 查看系统分区及挂载情况时会有这么一行:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 5.9G 11G 36% /
tmpfs 440M 0 440M 0% /dev/shm
tmpfs 分区,挂载在 /dev/shm 下,它的大小为 440M,使用 free 命令查看系统内存及交换分区信息,可以看到 tmpfs 大体等于系统内存的一半(899M):
[root@localhost~]# free
total used free shared buffers cached
Mem: 899420 194916704504 244 15696 76052
-/+buffers/cache: 103168 796252
Swap:2047996 0 2047996
从它的大小上我们可以明显看出来, tmpfs 并非 swap,那么tmpfs 是什么呢?其实,tmpfs 是一个临时文件系统,驻留于内存中,使用它可以提高文件访问速度,并能保证系统重启时自动清除这些文件。知道 tmpfs 的这一特性后,我们就可以把一些对读写性能要求较高,但是数据又可以丢失的保存在 /dev/shm 中。我们可以自定义该分区的大小,当然,因为tmpfs 是内存的一部分,所以最大不能超过内存的实际大小:
[root@localhost~]# mount –o remount,size=180M tmpfs /dev/shm
[root@localhost~]# df –h
可以发现其大小变为了180M。但是这种自定义方法只是暂时性的,重启后还会恢复系统默认值,修改/etc/fstab 可以使其永久生效:
[root@localhost~]# vim /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=180M 0 0
保存退出即可。也可以使用如下命令创建新的 tmpfs 文件系统:
[root@localhost~]# mount –t tmpfs tmpfs /temporary –o size=200M
之后修改/etc/fstab 添加一行新的记录即可。
(2)du 命令用来查看文件/目录的大小:
[root@localhost~]# du –sh /etc/
[root@localhost~]# du –sb /tmp/learn/file.log //查看具体大小
(3)fdisk 命令用于磁盘分区:
[root@localhost~]# fdisk –l //查看所有磁盘及分区情况
[root@localhost~]# fdisk –l /dev/sdb //查看特定磁盘及其分区
1.2 使用硬盘三步曲:分区–> 格式化à挂载
(1)分区:
[root@localhost ~]#fdisk /dev/sdb //将 /dev/sdb 硬盘分区
在扩展分区里可以划分逻辑分区,逻辑分区编号从 5 开始
扩展分区和主分区的地位一样,都占用一个分区表(16字节),4个分区表64字节是MBR的组成部分。
补充:查看所用的Linux 系统支持的文件系统格式:
[root@localhost~]# cat /etc/filesystems
(2)格式化:
方法一:
[root@localhost~]# mkfs.ext4 /dev/sdb1 /usr/local/src
同样的命令还有mkfs.ext3 mkfs.ext2 mkfs.ext1,将分区格式化为不同的文件系统类型。
方法二:
[root@localhost~]# mke2fs –t ext4 /dev/sdb1
下面是分区过程中显示的部分信息,主要是 Block size —— 块的大小,(5.00%) reserved for the super user——为 root 预留的空间:
Block size=4096(log=2)
Fragmentsize=4096 (log=2)
Stride=0 blocks,Stripe width=0 blocks
66384 inodes,265064 blocks
13253 blocks(5.00%) reserved for the super user
这些都可以在分区时通过相应参数指定:
[root@localhost~]# mke2fs –t ext4 –b 1024 –m 3 /dev/sdb1
其中,-b 参数指定块的大小,1024 2048 4096 8192 等, -m 参数指定为 root 用户的预留空间(预留空间在 df –h 中显示不出来)。这些参数同样适用于方法一(当然没有–t 参数指定文件系统类型了):
[root@localhost~]# mkfs.ext4 –b 2048 –m 10 /dev/sdb1
(3)挂载:
[root@localhost~]# mount /dev/sdb1 /usr/local/src
注:一个目录可以挂载多个硬盘分区,但后挂载的会顶替之前挂载过的。
保存挂载信息,两种方法:
方法一:
[root@localhost~]# vim /etc/fstab
/dev/sdb1 /usr/local/src ext4 defaults 0 0
保存退出即可。
补充:/etc/fstab 配置文件中各列所代表的含义
第一列 分区表示,可以为LABEL、UUID或 /dev/sdb1
第二列 挂载点
第三列 分区所使用的文件系统格式
第四列 mount的一些挂载参数,默认直接 defaults 即可
第五列 是否被 dump 备份, 1 备份, 0 不备份
第六列 开机时是否自检磁盘,1, 2表示检测,优先级 1 > 2, 0表示不检测。其中 / 分区必须设置为 1 ,整个 /etc/fstab 配置文件中在该列只允出现一个 1 ,所以如果其他磁盘分区需要开机自检,将该列设置为 2 即可。
方法二:
[root@localhost~]# vim /etc/rc.local //或 /etc/rc.d/rc.local
mount /dev/sdb1/usr/local/src
保存退出即可。
(4)解除挂载:
以下三种方式均可以解除挂载,任选其一即可:
[root@localhost~]# umonut /dev/sdb1
[root@localhost~]# umount /usr/local/src
[root@localhost~]# umount /dev/sdb1 /usr/local/src
之后删除/etc/fstab 或 /etc/rc.local 中的相关配置信息即可。
补充:mount –o 用途很多,后面可以跟多种选项,具体如下:
“async/sync” :async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
“auto/noauto” : 开机自动挂载/不自动挂载;
“default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser, async 。
“ro” : 按只读权限挂载 ;
“rw” : 按可读可写权限挂载 ;
“exec/noexec” : 允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;
“user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
“suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid;
“usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
“grquota” : 启动群组磁盘配额模式;
举几个例子:
(1)请将/dev/sdb1 以只读方式挂载到 /data 下:
[root@localhost~]# mount –o ro /dev/sdb1 /data
(2)重新挂载 /dev/sdb1,将其挂载到 /home 下,并以读写方式挂载:
[root@localhost~]# mount –o remount,rw /dev/sdb1 /home
特殊用法:
(1)挂载镜像文件:
[root@localhost src]# mount -o loop ./CentOS.iso /mnt
之后可以去/mnt 目录下查看镜像文件中的内容并使用。
(2)实时同步两个目录中的内容(用的很少,仅供了解):
mount --bind /dir1 /dir2
相当于创建了目录之间的一种软链接。
获取磁盘分区的UUID:
[root@localhost ~]# blkid //查看所有分区的UUID,包括已
//经挂载的和还未挂载的 blockid
使用UUID进行挂载:
[root@localhost ~]# mount UUID="……" /mnt
相应的,修改/etc/fstab 文件:
UUID="……" /data ext4 defaults 0 0
使用UUID的好处是,多块磁盘,如果在服务器上换了插槽位置,设备名会变,但磁盘的UUID是唯一且不会变的。
在实际应用中,可以先修改 /etc/fstab,直接把将要挂载的磁盘分区配置好,然后使用下条命令:
[root@localhost~]# mount –a
该命令的作用是,根据/etc/fstab 配置文件重新挂载磁盘。比先挂载磁盘再修改 /etc/fstab 配置文件要方便一点。
补充:
1. partprobe 命令,可以重读分区表,在不重启系统的情况下刷新分区情况,长用于在挂载硬盘分区后 df –Th 显示不出来的情况:
[root@localhost~]# partprobe
2.fsck 命令,用于检查修复Linux 文件系统,在自己的虚拟机上可以用用,在真机上几乎不使用,以免破话文件,在此仅供了解:
[root@localhost~]# fsck –y /dev/sda3 // -y 参数自动修复
参考资料:http://www.aminglinux.com/bbs/thread-7621-1-1.html
本文出自 “细桶假狗屎” 博客,请务必保留此出处http://xitongjiagoushi.blog.51cto.com/9975742/1623707
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。