管理分区
列出块设备
lsblk
分区工具fdisk
fdisk -l /dev/sdX 查看硬盘分区信息
CentOS7: fdisk -l /dev/sda 默认开启dos及扇区显示模式
开启dos及柱面显示模式:fdisk -c=dos -u=cylinders -l /dev/sda
Centos6:fdisk -l /dev/sda 默认开启非dos及柱面显示模式
开户非dos及扇区显示模式:fdisk -cul /dev/sda
-c (centos6) 打开或禁用dos模式
-u (centos6) 切换显示的单位(扇区/柱面)
-c (centos7) -c=dos -c=nondos
-u (centos7) -u=cylinders -u=sectors
fdisk /dev/sdX 进行分区
m 帮助
n 建立分区
d 删除分区
p 显示分区信息
t 转换分区类型
a 将指定分区设置/取消 活动分区
L 查看分区类型
o 重建分区表
v 验证分区表,显示剩余没有被分区划分的扇区数量
g 创建GPT格式的分区(centos7)
q 退出不保存
w 退出并保存,不保存,所有的修改都不生效
echo -e “n\np\n1\n\n+1G\nw\n” |fdisk /dev/sdb 非交互式分区
echo的一串字符太复杂了,可以开启另一个终端建立分区,操作一步然后写入echo,这样就不会复杂了
分区工具gdisk 功能类似于fdisk
fdisk不能查询GPT类型的分区
parted命令
parted /dev/sdX 高级分区操作(创建、复制、调整大小等等)
help 查看帮助
mklabel msdos/gpt 指定分区类型
help mklable 查看mklabel的帮助
mkpart 建立分区
print 查看硬盘分区信息
rm number 删除分区
parted /dev/sdX mkpart primary 1 1000 非交互式进行分区
同步分区表
查看内核是否已经识别新的分区:
cat /proc/partitions
对系统所在的硬盘增加或删除分区,因为内存不会重读系统所在硬盘的分区表,所以被增加或者删除的分区信息用lsblk,cat /proc/partitions,fdisk查看都不会生效,这时可以用partprobe(Centos5,7),或partx(Centos6)同步分区表
CentOS 5,7: 使用partprobe
partprobe 当对系统所在的硬盘进行分区修改操作后,内存不会重读分区表,需要使用partprobe强制重读,centos6中有bug。
centos6通知内核重新读取硬盘分区表
partx -a /dev/sdX 向内存中增加分区更新
kpartx-a /dev/DEVICE -f: force 向内存中增加分区更新
partx -d –nr X /dev/sdaX 从内存中删除分区更新
管理文件系统
创建文件系统
mkfs命令(创建ext文件系统时也能用mke2fs的选项):
(1) mkfs.FS_TYPE/dev/DEVICE 创建文件系统指定类型
ext4
xfs
btrfs
vfat
例如:mkfs.ext4 /dev/sdb1
-f 强制创建类型为xfs的文件系统(直接敲mkfs.xfs /dev/sdd1 会提醒你使用-f强制覆盖,此时再加个-f就能创建类型为xfs的文件系统)
(2) mkfs -t FS_TYPE /dev/DEVICE mkfs -t ext4 /dev/sdb1=mkfs.ext4 /dev/sdb1
-L ‘LABEL’: 设定卷标
-b 指定block大小 例如mkfs.ext4 -b 1500 /dev/sdd1 指定的数字必须大于1024,大于1024小于2048指定block大小为1024,大于2048小于4096指定block大小为2048,大于4096小于8192指定block大小为4096….以此类推
创建ext文件系统
mke2fs:ext系列文件系统专用管理工具
-t {ext2|ext3|ext4} 指定类型为{ext2|ext3|ext4}(不指定类型默认ext2)
-b {1024|2048|4096} 指定块大小为{1k|2k|4k…|2^nk}只能是1024或2048或4096…或2^(n+10)其他数字不能
-L ‘LABEL’ 指定卷标 卷标可以在挂载的时候用 例如:munt LABEL=lihaile /app/tmp
centos5 在系统安装时创建的文件系统,自动将与挂载点路径命名为卷标
-j: 相当于-t ext3
mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3
-i#: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
-N #:指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128—4096
-m #: 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,…]:启用指定特性
-O ^FEATURE:关闭指定特性
文件系统标签
指向设备的另一种方法
与设备无关
blkid:块设备属性信息查看(可以查看块设备的UUID,卷标,文件系统类型)
blkid[OPTION]… [DEVICE]
-U UUID: 根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL
e2label /dev/sdd1 查看卷标
e2label /dev/sdb1 LABELNAME 修改卷标
findfs:查找分区
findfs[options] LABEL=<label>
findfs[options] UUID=<uuid>
tune2fs
tune2fs:重新设定ext系列文件系统可调整参数的值
tune2fs /dev/sda10 修改文件系统信息
-l 显示文件系统信息(与dumpe2fs -h 信息基本一致)
-L ‘LABEL’:修改卷标
-m #:修预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: 文件系统属性启用或禁用,–O ^has_journal
-o: 调整文件系统的默认挂载选项,–o ^acl
-U UUID: 修改UUID号
dumpe2fs
dumpe2fs /dev/sda10 查看文件系统信息:superblock信息及block group信息
-h 不显示block group而只显示superblock 与tune2fs -l一致
超级块(super block)和inode table
group0里面放的是superblock,group1,3,5,7…里面放的是backup block(备份块)
super block 存储的是整个文件系统的简单的信息,不能弄丢,弄坏,否则文件系统就不能被访问,在企业中有可能会由于断电非正常关机而导致super block坏了,文件系统不能挂载到目录上,所以文件系统不能被访问,这时可以用fsck/e2fsck检测和修复文件系统
文件系统检测和修复
常发生于死机或者非正常关机之后
挂载为文件系统标记为“no clean”
注意:一定不要在挂载状态下修复
fsck/e2fsck 先卸载再修复
-t filetype
-f 强制修复(文件系统没问题的话就不修复,如果你想修复加个-f强制修复)
-y 非交互式 自动回答“yes”
-r 交互式
-p 自动修复
(一定要先取消挂载再修复)
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复
挂载mount
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为 用mount 例如:mount /dev/sdd1 /app/tmp 文件系统在前,目录在后
(当访问文件系统里的数据时不能直接访问文件系统,需要将文件系统挂载到目录,通过访问目录来访问文件系统)
卸载:为解除此关联关系的过程 用umount 例如umount /app/tmp|/dev/sdd1 跟文件系统或者目录二者任意选一
挂载点下原有文件在挂载完成后会被临时隐藏
挂载点目录一般为空
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount 挂载时要指定挂载的块设备例如:/dev/sdd1,也可以用卷标和UUID来代替块设备例如:mount LABEL=LABELname /app/tmp或mount UUID=5fabb1e8-f112-44f6-9e6d-e62890c13fef /app/tmp
mount 常用命令选项
-t 指定文件系统类型
-r 只读挂载
-w: read and write, 读写挂载(默认)
-o remount,ro|rw 也会更新/etc/fstab中的选项,如果与指定的冲突,则remount后指定的优先。
-n 隐藏挂载信息不显示,但在/proc/mounts可以查到
-a 读取/etc/fstab,挂载其中没有挂载的设备
-L ‘LABEL’: 以卷标指定挂载设备
-U ‘UUID’: 以UUID指定要挂载的设备
-B –bind 目录挂目录
查看内核追踪到的已挂载的所有设备:
cat /proc/mounts
-o 选项 挂载的功能
sync,async 同步,异步(defaults)
atime(defaults),noatime 是否在读访问时更新atime(现在/dev/sdd1挂载到目录/app/tmp上,在里面创一个文件123,cat这个文件,这个文件的访问时间就会发生改变,然后mount -o remount,noatime /app/tmp,再去cat这个文件,此时访问时间不会发生改变,但touch这个文件访问时间会发生改变)
diratime(defaults),nodiratime目录的访问时间戳
auto(defaults)/noauto写在/etc/fstab当中的分区,是否在mount -a时被挂载(是否支持-a)
exec(defatuls)/noexec 在该分区所挂载的目录中的脚本是否可以执行。
dev(defaults)/nodev:是否支持在此文件系统上使用设备文件
suid(defaults)/nosuid:不否支持suid和sgid权限
remount:重新挂载
ro:只读
rw:读写(defaults)
user/nouser(defaults):是否允许普通用户挂载此设备,默认管理员才能挂载
acl:启用此文件系统上的acl功能
defaults 默认,见以上中的(defaults)相当于rw, nosuid, dev, exec, auto, nouser, async
findmnt 查看所有的挂载点
卸载命令
findmnt /dev/sdd3 查看设备的挂载状况
lsof 设备名或挂载点
fuser -v 挂载点
-kv 挂载点 强制结束所有执行在挂载点上的进程
umount 设备名/挂载点
例如:umount /dev/sdb /app/tmp
原创文章,作者:fuming,如若转载,请注明出处:http://www.178linux.com/85391