Linux-----磁盘管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-----磁盘管理相关的知识,希望对你有一定的参考价值。
df
df命令:
查看文件系统空间占用的信息。
利用该命令可以了解硬盘已使用了多少空间,还剩下多少空间,还可以查看当前磁盘上所有挂载的设备(文件系统)及挂载点。
显示结果如下:①文件系统②磁盘总容量③已使用容量④剩余容量⑤已使用的百分比⑥挂载点
注:带tmpfs的表示临时文件系统,重启后内容会重置。
如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
选项:
-i:显示inode的详细信息 -h:使用合适的单位显示信息 -k:以K为单位显示信息 -m:以M为单位显示信息 -T:查看文件系统类型
示例:
df:查看系统磁盘设备,默认是KB为单位
df -h:查看系统磁盘设备,以合适的单位来显示
du
du命令:
用于查看某个目录总体空间占用的情况
du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。
选项:
-h:以合适的单位显示信息 -s:仅显示指定目录下所有文件大小的总和 -k:以KB为单位显示信息 -m:以MB为单位显示信息
示例:
du -sh:以合适的单位显示指定目录下所有文件大小的总和
free命令:
查看内存空间的使用情况
选项:
-m: 以MB为单位 -g: 以GB为单位
示例:
free -m: 以MB为单位查看内存空间的使用情况
free -g: 以GB为单位查看内存空间的使用情况
parted命令:
parted 是高级分区操作命令,它的操作都是实时生效的,小心使用。在centos 7可以用partprobe命令更新硬盘,centos 6 不可以。
用法:
parted [选项]... [设备 [命令 [参数]...]...] parted /dev/Device mklabel gpt | msdos : 改变磁盘类型为GPT或MBR parted /dev/Device print :显示磁盘分区信息 parted /dev/Device mkpart primary 1 1000 : 创建分区 1 为分区号;1000为分区大小(默认为M) parted /dev/Device rm 1 : 删除第一个分区 parted -l : 列出所有设备信息
fdisk : MRB分区工具
fdisk是Linux的MRB分区表操作工具,gdisk是GPT分区表的操作工具,用法与fdisk基本一致。
fdisk /dev/sdX : 管理sdX磁盘,对指定硬盘修改分区
fdisk 子命令:
m: 帮助 o: 创建msdos分区label n: 创建新的分区 d: 删除分区 p: 查看当前分区表 a: 添加/取消 启动标记 t: 转换分区类型ID l/L: 显示分区类型ID表
示例:
fdisk -l : 列出所有块设备的分区信息
fdisk -l /dev/sdX: 查看指定块设备的分区信息
cat /proc/partitions 查看内核是否已经识别新的分区:
注:若仅有 fdisk -l 时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
四、磁盘格式化
mkfs命令:
创建文件系统
mke2fs是ext系列文件系统的专用管理工具
查看支持的文件系统:cat /proc/filesystems
配置文件: /etc/mke2fs.conf 用于设定默认特性及各文件系统特有的特性
创建ext文件系统
选项:
-t :指定文件系统类型 {ext2 | ext3 | ext4} -j :相当于 -t ext3 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 -L label : 指定卷标, -b{1024|2028|4096} :指定块大小 -i # :为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小 -N # : 直接指定分区中创建多少个inode -I n :指定inode大小 -m #:为管理员预留空间占总空间百分比,默认为5% -O FEATURE[,...] :启用指定特性(只能开启以下特性) -o ^FEATURE 禁用指定特性
tune2fs命令:
修改文件系统信息,重新设定ext 系列文件系统可调整参数的值
-l :查看指定文件系统超级块信息;super block -L 'LABEL' :修改卷标(ext) mkfs -L 'LABEL' 或 mke2fs -L 'LABEL' 创建时设置卷标 e2label /dev/sd# 查看卷标 e2label /dev/sd# 'LABEL' 重命名卷标 -m # :修预留给管理员的空间百分比 -j: 将ext2 升级为ext3 -O: 文件系统属性启用或禁用, –O ^has_journal -o: 调整文件系统的默认挂载选项,–o ^acl (centos7里默认开启acl 6 默认不开启) -U UUID: 修改UUID号
例:tune2fs -o acl /dev/sdb2 开启/dev/sdb2的acl功能
dumpe2fs /dev/sda# 查看文件系统信息:superblock信息及block group信息
-h :查看超级块,不显示block group而只显示superblock 与tune2fs -l一致
小知识:超级块就是文件系统的内置,指定文件系统类型
block group 0里有super block ,后奇数组都有备份,能用于修复
文件系统检测:
fsck:
用来检查和维护不一致的文件系统
选项:
-t : 文件类型 设备 -f : 强行检测 -a : 如果检查有错自动修复错误 -r : 交互式修复错误
示例:
fsck -y : 检查修复每个文件
注:如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。
e2fsck : ext系列文件系统专用的检测修复工具
-y :自动回答为yes -f :强行检测
磁盘挂载和卸载:
mount
mount 命令:
通过查看/etc/fstab文件显示当前以挂载的设备
用法:
mount [options] -o [option] -t 文件类型 设备 挂载目录 设备: (1)设备文件:例如/dev/sr0,/dev/sdb1 (2)卷标:-L '卷标名' (3)UUID:-U 'UUID' (4)伪文件系统名称:proc,sysfs 挂载目录: (1)必须事先存在,尽量使用空目录
选项:
-t :指定要挂载设备的文件系统类型 -r :readonly,只读挂载 -w :读写挂载 -n :挂载后不更新/etc/mtab,导致mount和df命令无法查询到挂载信息,但可查看/proc/mounts -a :读取/etc/fstab 挂载当前尚未挂载的文件系统,已经挂载的文件系统不会重新挂载,也不会更新挂载选项 -L :以卷标名来指定要挂载的设备 -U :以UUID来指定要挂载的设备 -B,--bind :绑定目录到另一个目录上(相当于软链接) -o [options] :(挂载文件系统的选项),多个选项用逗号分隔 async (default) 异步模式 sync 同步模式,立即同步 atime (default) 文件被访问时,更新atime noatime 文件被访问时,不更新atime diratime (default) 目录被访问时,更新atime nodiratime 目录被访问时,不更新atime auto (default) 写入/etc/fstab后,被mount -a自动挂载 noauto 写入/etc/fstab后,不被mount -a自动挂载 exec (default) 该目录下有rx权限的文件可以被执行 noexec 该目录下所有文件对所有用户包括root,都不可以被执行 dev (default) 该目录下设备文件可以被使用 nodev 该目录下的设备文件不可被使用 suid (default) 表示该目录下的suid,sgid权限生效 nosuid 表示该目录下的suid,sgid权限不生效 remount,xxx 不卸载的情况下,可直接更新挂载选项 rw (default) ro nouser(default) 写入/etc/fstab的项目不能让普通用户挂载/卸载 user 写入/etc/fstab的项目可以让普通用户挂载/卸载 acl (centos7 default) 该目录下的文件可以设置acl权限 noacl (centos6及之前 default) 该目录下的文件不可以设置acl权限 loop 挂载loop设备,如iso时,要指定 defaults rw, suid, dev, exec, auto, nouser, async,atime,diratime,acl(centos7)
示例:
cat /proc/mounts:查看内核追踪到的已挂载的所有设备
注:文件挂载成功后,挂载后不更新/etc/mtab,导致mount和df命令无法查询到挂载信息,但可以用df -a查看。
/etc/fstab每行定义一个要挂载的文件系统。
工具dd:
dd if=file of=file bs=n count=n if=file :从某个文件读取数据 of=file :输出到某个文件 bs=size : block size,指定块大小(ibs=obs) ibs=size :一次读取size个byte obs=size :一次写size个byte cbs=size :一次转化size个byte skip=blocks :从开头忽略blocks个ibs大小的块 seek=blocks :从开头忽略blocks个obs大小的块 count : 复制多少个bs conv=onversion... :用指定参数转换文件 转换参数: ascii :转换ebcdic码为ascii ebcdic :转换ascii为ebcdic lcase :把大写字符转换为小写 ucase :把小写转换为大写 nocreat :不创建输出文件 noerror :出错时不停止 notrunc :不截短输出文件 sync :把输入块填充到ibs个字节,不足的部分用空(NUL)字符补
以上是关于Linux-----磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章