Linux基础之磁盘及文件系统管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础之磁盘及文件系统管理相关的知识,希望对你有一定的参考价值。
磁盘和文件系统管理
文件系统管理工具:
创建文件系统的工具
mkfs
mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat, ...
检测及修复文件系统的工具
fsck
fsck.ext2, fsck.ext3, ...
查看其属性的工具
dumpe2fs, tune2fs
调整文件系统特性:
tune2fs
内核级文件系统的组成部分:
文件系统驱动:由内核提供
文件系统箮理工具:由用户空间的应用程序提供
ext系列文件系统的管理工具:
mkfs.ext2, mkfs.ext3, mkfs.ext4
mkfs -t ext2 = mkfs.ext2
ext系列文件系统专用管理工具:mke2fs
mke2fs [OPTIONS] device
-t {ext2|ext3|ext4}:指明要创建的文件系统类型
mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
-b {1024|2048|4096}:指明文件系统的块大小;
-L LABEL:指明卷标;
-j:创建有日志功能的文件系统ext3;
mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3
-i #:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;
-N #:直接指明要给此文件系统创建的inode的数量;
-m #:指定预留的空间,百分比;
-O [^]FEATURE:以指定的特性创建目标文件系统;
e2label命令:卷标的查看与设定
查看:e2label device
设定:e2label device LABEL
tune2fs命令:查看或修改ext系列文件系统的某些属性
adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems;
注意:块大小创建后不可修改;
tune2fs [OPTIONS] device
-l:查看超级块的内容;
修改指定文件系统的属性:
-j:ext2 --> ext3;
-L LABEL:修改卷标;
-m #:调整预留空间百分比;
-O [^]FEATHER:开启或关闭某种特性;
-o [^]mount_options:开启或关闭某种默认挂载选项
acl
^acl
dumpe2fs命令:显示ext系列文件系统的属性信息
dumpe2fs [-h] device
用于实现文件系统检测的工具
因进程意外中止或系统崩溃等 原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统; 建议,离线进行;
ext系列文件系统的专用工具:
e2fsck : check a Linux ext2/ext3/ext4 file system
e2fsck [OPTIONS] device
-y:对所有问题自动回答为yes;
-f:即使文件系统处于clean状态,也要强制进行检测;
fsck:check and repair a Linux file system
-t fstype:指明文件系统类型;
fsck -t ext4 = fsck.ext4
-a:无须交互而自动修复所有错误;
-r:交互式修复;
CentOS 6如何使用xfs文件系统:
# yum -y install xfsprogs
事先:
# cd /etc/yum.repos.d/
# wget http://172.16.0.1/centos6.7.repo
# mv CentOS-Base.repo CentOS-Base.repo.bak
创建:mkfs.xfs
检测:fsck.xfs
blkid命令:
blkid device
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据UUID定位设备
swap文件系统:
Linux上的交换分区必须使用独立的文件系统;
且文件系统的System ID必须为82;
创建swap设备:mkswap命令
mkswap [OPTIONS] device
-L LABEL:指明卷标
-f:强制
Windows无法识别Linux的文件系统; 因此,存储设备需要两种系统之间交叉使用时,应该使用windows和Linux同时支持的文件系统:fat32(vfat);
# mkfs.vfat device
文件系统的使用:
首先要“挂载”:mount命令和umount命令
根文件系统这外的其它文件系统要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”;此目录即为“挂载点”;
挂载点:mount_point,用于作为另一个文件系统的访问入口;
(1) 事先存在;
(2) 应该使用未被或不会被其它进程使用到的目录;
(3) 挂载点下原有的文件将会被隐藏;
mount命令:
mount [-nrw] [-t vfstype] [-o options] device dir
命令选项:
-r:readonly,只读挂载;
-w:read and write, 读写挂载;
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;
-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;
-L LABEL:挂载时以卷标的方式指明设备;
mount -L LABEL dir
-U UUID:挂载时以UUID的方式指明设备;
mount -U UUID dir
-o options:挂载选项
sync/async:同步/异步操作;
atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
diratime/nodiratime:目录在被访问时是否更新其访问时间戳;
remount:重新挂载;
acl:支持使用facl功能;
# mount -o acl device dir
# tune2fs -o acl device
ro:只读
rw:读写
dev/nodev:此设备上是否允许创建设备文件;
exec/noexec:是否允许运行此设备上的程序文件;
auto/noauto:
user/nouser:是否允许普通用户挂载此文件系统;
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.
一个使用技巧:
可以实现将目录绑定至另一个目录上,作为其临时访问入口;
mount --bind 源目录 目标目录
查看当前系统所有已挂载的设备:
# mount
# cat /etc/mtab
# cat /proc/mounts
挂载光盘:
mount -r /dev/cdrom mount_point
光盘设备文件:/dev/cdrom, /dev/dvd
挂载U盘:
事先识别U盘的设备文件;
挂载本地的回环设备:
# mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
umount命令:
umount device|dir
注意:正在被进程访问到的挂载点无法被卸载;
查看被哪个或哪些进程所战用:
# lsof MOUNT_POINT
# fuser -v MOUNT_POINT
终止所有正在访问某挂载点的进程:
# fuser -km MOUNT_POINT
交换分区的启用和禁用:
创建交换分区的命令:mkswap
启用:swapon
swapon [OPTION] [DEVICE]
-a:定义在/etc/fstab文件中的所有swap设备;
禁用:swapoff
swapoff DEVICE
设定除根文件系统以外的其它文件系统能够开机时自动挂载:/etc/fstab文件
每行定义一个要挂载的文件系统及相关属性:
6个字段:
(1) 要挂载的设备:
设备文件;
LABEL
UUID
伪文件系统:如sysfs, proc, tmpfs等
(2) 挂载点
swap类型的设备的挂载点为swap;
(3) 文件系统类型;
(4) 挂载选项
defaults:使用默认挂载选项;
如果要同时指明多个挂载选项,彼此间以事情分隔;
defaults,acl,noatime,noexec
(5) 转储频率
0:从不备份;
1:每天备份;
2:每隔一天备份;
(6) 自检次序
0:不自检;
1:首先自检,通常只能是根文件系统可用1;
2:次级自检
...
mount -a:可自动挂载定义在此文件中的所支持自动挂载的设备;
两个命令:df和du
df命令:
df [OPTION]... [FILE]...
-l:仅显示本地文件的相关信息;
-h:human-readable
-i:显示inode的使用状态而非blocks
du命令:
du [OPTION]... [FILE]...
-s: sumary
-h: human-readable
练习:
1、创建一个10G的分区,并格式化为ext4文件系统;
(1) block大小为2048;预留空间为2%,卷标为MYDATA;
(2) 挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
(3) 可开机自动挂载;
2、创建一个大小为1G的swap分区,并启动之;
以上是关于Linux基础之磁盘及文件系统管理的主要内容,如果未能解决你的问题,请参考以下文章