磁盘管理及文件系统管理
磁盘管理
分区工具fdisk (最多支持一个硬盘划分15个分区)
管理子命令:
n 新建 p 显示分区 t 更改分区类型 d 删除分区 l分区类型说明 w 保存退出
q 放弃保存退出 m 获取帮助
注意:创建完成之后,查看内核是否已经识别新的分区:
# cat /proc/partitions
如果没有识别,可以使用以下命令让系统识别:
CentOS 5上使用: partprobe [DEVICE],例如pratprobe /dev/sdb1
CentOS 6,7上用: partx kpartx
partx命令:partxDEVICE
-a DEVICE 激活所有分区
-a -n M:N DEVICE 激活指定
M
M:
:N
kpartx命令:
kpartx -af DEVICE
文件系统管理
linux文件系统包括:ext2(非日志型),ext3(日志型),ext4(日志型),reiserfs, xfs, btrfs(日志型,最新), swap(交换分区)
光盘文件系统:iso9660
Windows文件系统:fat32(vfat), ntfs
Unix: ffs, ufs, jfs, jfs2
网络文件系统:nfs, cifs
集群文件系统:ocfs2, gfs2
分布式文件系统:ceph,moosefs, mogilefs, hdfs,gfs, glusterfs
创建文件系统:
mkfs (实际上它根据不同的文件类型,对应/sbin下的mkfs.ext2,mkfs.ext4等其他格式,根据-t来进行调用)
mkfs -t type DEVICE
例如: mkfs �Ct ext4 /dev/sdb1 = mkfs.ext4 /dev/sdb1
mke2fs(ext系列文件系统的专用管理工具):
mke2fs -t {ext2|ext3|ext4} DEVICE
-b BLOCK: 1024, 2048, 4096
-L 'LABEL': 设定卷标
-m 保留给管理员的空间
例如:mke2fs -t ext4 -L ‘TEST’-b 2048 -m 5 /dev/sdb2
blkid命令:获取文件系统类型、UUID、卷标
例:blkid 或 blkid /dev/sdb2
文件系统属性查看及调整工具:
e2label卷标显示、更改
例:e2label /dev/sdb2 显示卷标
e2label /dev/sdb2 TEST2 更改卷标为TEST2
tune2fs (显示ext系列文件系统的属性,或调整其属性)
参数: -l 显示整个文件系统信息,包括超级块信息
-L 修改卷标
-m 调整预留给管理员管理的百分比空间
-j ext2转换成ext3
-O:文件系统属性的启动或关闭 (已加载组件的启动或关闭)
-o:文件系统默认挂载选项的启用或关闭(组件是否加载)
-c max-mount-counts设置强制自检的挂载次数,如果开启,每挂载一次mount count就会加1,超过次数就会强制自检
-i [d|m|w] 设置强制自检的时间间隔[d天m月w周]
例:tune2fs -O ^has_journal /dev/sdb2 关闭日志功能
tune2fs -O ^has_journal /dev/sdb2 启动日志功能
tune2fs -c 30 /dev/hda1 设置强制检查前文件系统可以挂载的次数
tune2fs -c -l /dev/hda1 关闭强制检查挂载次数限制。 #有些分区本身默认就是-1,也就是不检测
tune2fs -i 10 /dev/hda1 10天后检查
tune2fs -i 1d /dev/hda1 1天后检查
tune2fs -i 3w /dev/hda1 3周后检查
tune2fs -i 6m /dev/hda1 半年后检查
tune2fs -i 0 /dev/hda1 禁用时间检查
tune2fs -j /dev/hda1 添加日志功能,将ext2转换成ext3文件系统
tune2fs -r 40000 /dev/hda1 调整/dev/hda1分区的保留空间为40000个磁盘块
判断是ext2还是ext3:
tune2fs �Cl/dev/sdb1 | grep features
看Filesystem features:has_journal
是否有has_journal,有则是ext3文件系统
df -T 查看分区文件系统类型
例:df -T /dev/sdb1
dumpe2fs
例:dumpe2fs /dev/sdb2
dumpe2fs -h /dev/sdb2 加-h仅显示超级块信息
文件系统检测:
fsck(实际上它根据不同的文件类型,对应/sbin下的fsck.ext2,fsck.ext4等其他格式,根据-t来进行调用)
fsck -t type
fsck.type
-a: 自动修复错误
-r: 交互式修复错误
-f: 强制检测
例:fsck -t ext4 -a -f /dev/sdb2
e2fsck:ext系列文件系统专用的检测修复工具;
-y: 自动回答为“yes”
-f:force
例:e2fsck -f /dev/sdb2
文件系统挂载:
mount挂载:
mount:通过读取/etc/mtab文件来显示当前系统所有已经挂载的设备;
mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;
mount [options] [-o options] DEVICE MOUNT_POINT
[options]:命令选项
[-o options]:挂载选项
DEVICE: 要挂载的设备
(1) 设备文件:/dev/sda5
(2) 卷标:-L 'LABEL'
(3) UUID:-U 'UUID'
(4) 伪文件系统名称
MOUNT_POINT: 挂载点
常用选项:
-t type:文件系统类型
-r: 以“只读”方式挂载此文件系统
-w: 以“读写”方式挂载此文件系统
-n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;
此时,如果想查看挂载的所有文件系统:cat/proc/mounts
-a: 自动挂载所有支持自动挂载的设备;
-B:绑定目录至另一个目录上;
-o 挂载选项:
async:异步模式
sync: 同步模式
atime/noatime:是否更新访问时间戳;
diratime/nodiratime:是否更新目录的访问时间戳;
auto/noauto: 是否允许此设备被自动挂载;
exec/noexec:是否允许执行此文件系统上应用程序;
dev/nodev:是否支持在此设备上使用设备文件;
suid/nosuid:
remount:重新挂载
ro
rw
user/nouser: 是否允许普通用户挂载此设备;
acl:是否支持此设备上使用facl;
defaults:rw, suid,dev, exec, auto, nouser, and async
例:
fat32的分区
mount -ocodepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
(mount -t vfat-o iocharset=cp936 /dev/hda7 /mnt/cdrom)
ntfs的分区
mount -oiocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件
mount -o loop/abc.iso /mnt/cdrom
软盘
mount /dev/fd0/mnt/floppy
USB闪存
mount /dev/sda1/mnt/cdrom
挂载所有/etc/fstab内容 mount -a
镜像文件:
mount fileNamemountPoint -o loop,fileName是镜像文件名(*.iso,*.img),其它的不用说了,跟上面一样。用例:如我有一个a.iso光盘镜像文件,mount a.iso a -o loop,这样进入目录a你就能浏览a.iso的内容了,*.img文件的用法一样。
umount:卸载命令
# umount DEVICE
# umount MOUNT_POINT
例:umount/dev/sdb1 或 umount /mnt/aa
如果卸载时提示该文件系统正在使用中,可用fuser查看是谁在用,还可以用-km把它强行结束
例:fuser -v /mnt/aa 查看谁正在使用这个挂载了设备的目录
fuser -km /mnt/aa 强制结束使用着的进程,结束后就可以umount卸载
文件系统相关挂载配置文件:/etc/fstab
要挂载的设备:
设备文件、LABEL=、UUID=、伪文件系统名称
挂载选项:
defaults(包含rw, suid, dev, exec, auto, nouser, andasync)
转储频率:
0: 不转储
1: 每天转储
2: 每隔一天转储
自检次序:
0:不自检
1:首先自检,通常只有/才为1
2:
交换分区swap:
mkswap:创建交换分区
语法:mkswap [option] DEVICE
-L 'LABEL'
例:mkswap -L ‘swap1’ /dev/sdb2
swapon:启用交换分区
语法:swapon [option] [DEVICE]
-a: 激活所有交换分区
-p PRIORITY: 设定其优先级;你可以在0到32767中间选一个数字给他。或是在/etc/fstab 里面加上 pri=[value] ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用 swapon -a 来启动他们,而且有优先权设定。
例:swapon -p 2 /dev/sdb2
swapoff:禁用交换分区
swapoff [option] [DEVICE]
例:swapoff /dev/sdb2
用文件做交换分区:
dd if=/dev/zero of=/mnt/a.swap bs=1M count=100
mkswap /mnt/a.swap
swapon /mnt/a.swap
文件系统空间占用信息查看:
df: disk free
-h: human-readable 以易读方式展现
-i: inode数量
-P: 以Posix兼容的格式输出
例:df -h 或 df -ih 或直接df
du: disk usage
-h: human-readable以易读方式展现
-s: summary 统计总的容量
例:du -h /root 分别统计/root里各个目录的大小,或 du -hs /root 这样就会把root这个目录的总容量算出来了