11. linux磁盘及文件系统管理
Linux磁盘及文件系统管理
CPU,RAM
IO:Disks, Ehtercard
Disks:持久存储数据
Linux磁盘及文件系统管理
磁盘(disks):持久化存储数据
接口类型:
IDE:并口,133MB/s
SCSI:并口
SATA:串口6gbps
SAS:串口,6gbps
USB:480MB/s
iops:io per second
磁盘:机械硬盘,固态
机械硬盘:
track:磁道
sector:扇区,512bytes
cylinder:柱面
分区划分基于柱面
Linux哲学思想:一切皆文件
设备类型:
块设备:随机访问,数据交换单位是block(块)
字符设备:线性访问,数据交换单位是“字符”。
设备文件:
/dev
设备文件:关联至设备的驱动程序,设备的访问入口
设备号:
主设备号(major):区分设备类型;用于标明设备设备所需要的驱动程序。
次设备号(minor):区分同种类型下不同设备;是特定设备的访问入口。
手动创建设备文件:mknod命令
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE:创建文件后的设备文件权限
磁盘命名:
IDE:dev/hd[a-z]
SCSI,SATA,USB,SAS:dev/sd[a-z]
分区:
dev/sda[数字]
/dev/sda1,...
引用设备的方式:
设备文件名
卷标
UUID
磁盘分区:
MBR:0编号的扇区,主引导扇区。
分为三部分:
446bytes:bootloader,程序,引导操作系统的程序
64bytes:分区表,每16bytes标识一个分区,一共只能有4个分区
4主分区
3主1扩展
n个逻辑分区
2bytes:MBR区域的有效性标识,55AA为有效
主分区和扩展分区标识:1-4
逻辑分区:5+
分区管理命令:
fdisk命令:
1. 查看磁盘分区信息:
fdisk -l [-u] [device...] :列出指定磁盘设备上的分区情况
[root@named_server ~]# fdisk -l Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x0009ac89 Device Boot Start End Blocks Id System /dev/vda1 * 2048 104857566 52427759+ 83 Linux Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x1348ce7c Device Boot Start End Blocks Id System /dev/vdb1 2048 20973567 10485760 83 Linux [root@named_server ~]#
2. 管理分区
fdisk device
fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存种完成,没有直接同步到磁盘,直到使用w命令保存到磁盘才生效。
常用命令:
n :创建新分区
d:删除已有分区
t:修改分区类型
w:保存并退出
q:不保存退出(放弃修改)
m:查看帮助信息
p:显示现有分区信息
注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别。
确认内核有没有识别:cat/partitions
[root@named_server ~]# cat /proc/partitions major minor #blocks name 253 0 52428800 vda 253 1 52427759 vda1 11 0 42048 sr0 253 16 104857600 vdb 253 17 31457280 vdb1 253 18 31457280 vdb2 253 19 31457280 vdb3
通知内核强行重读分区表:
centos5:partprobe [device]
centos6;centos7:partx -a /dev/sdb(可能需要执行多次)
kpartx -af [device]
分区创建工具:partend, sfdisk
创建文件系统:
格式化:
低级格式化:(分区之前进行,划分磁道)
高级格式化:(分区之后对分区进行,创建文件系统)
磁盘分区分为:元数据区和数据区
元数据区:
文件元数据:inode(index node)
大小,权限,属主属组,时间戳, ...
符号链接文件:存储数据指针的空间当中存储的是真实文件的访问
设备文件:存储数据指针的空间当中存储的是设备号(major, minor)
vfs:Virtual File System
Linux的文件系统:ext2,ext3,ext4,xfs,relserfs,btrfs
光盘:iso9660
网络文件系统:nfs,cfs
集群文件系统:gfs2,ocfs2
内核级分布式文件系统:cefs
windows文件系统:vfat,ntfs
交换文件系统:swap
Linux文件系统管理工具
创建文件系统工具
mkfs
mkfs.ext2;mkfs.ext3;mkfs.ext4;mkfs.xfs;mkfs.vfat;...
检测及修复文件系统的工具
fsck
fsck.ext2;fsck.ext3;fsck.ext4;...
查看其属性工具
dumpe2fs;tune2fs
调整文件系统特性
tune2fs
链接文件:访问同一个文件的不同路径
硬链接:指向同一个inode的多个文件路径
ln 源文件 链接文件
特性:
(1) 目录不支持硬链接
(2) 硬链接不能跨文件系统
(3) 创建硬链接会增加inode引用技术
符号链接(软链接):指向一个文件路径的另一个文件路径
ln -s 源文件 符号链接文件
特性:
(1) 符号链接与文件是两个各自独立的文件,各有自己的inode;对源文件创建符号链接不会增加引用计数
(2) 支持对目录创建符号链接,可以跨文件系统
(3) 删除符号链接文件不影响源文件;但是删除源文件,符号指定的路径将不存在,此时会变成无效链接
注意:符号链接的文件的大小是其指定的文件的路径字符串的字节数
[root@named_server tmp]# ls a.txt test [root@named_server tmp]# ln a.txt a.txt.bak //创建硬链接 [root@named_server tmp]# ll total 4 -rw-r--r-- 2 root root 0 Aug 17 15:53 a.txt //引用计数为2 -rw-r--r-- 2 root root 0 Aug 17 15:53 a.txt.bak drwxr-xr-x 2 root root 4096 Aug 17 15:53 test [root@named_server tmp]# rm -rf a.txt.bak // 删除源文件不影响链接文件 [root@named_server tmp]# ll total 4 -rw-r--r-- 1 root root 0 Aug 17 15:53 a.txt drwxr-xr-x 2 root root 4096 Aug 17 15:53 test [root@named_server tmp]#
[root@named_server tmp]# ll total 4 -rw-r--r-- 1 root root 0 Aug 17 15:53 a.txt -rw-r--r-- 1 root root 0 Aug 17 15:54 stargate.lock drwxr-xr-x 2 root root 4096 Aug 17 15:53 test [root@named_server tmp]# ln -s a.txt b.txt // 创建软连接 [root@named_server tmp]# ll total 4 -rw-r--r-- 1 root root 0 Aug 17 15:53 a.txt lrwxrwxrwx 1 root root 5 Aug 17 16:00 b.txt -> a.txt -rw-r--r-- 1 root root 0 Aug 17 15:54 stargate.lock drwxr-xr-x 2 root root 4096 Aug 17 15:53 test [root@named_server tmp]# rm -rf a.txt // 删除源文件 [root@named_server tmp]# ll total 4 lrwxrwxrwx 1 root root 5 Aug 17 16:00 b.txt -> a.txt // 损坏链接,无效链接 drwxr-xr-x 2 root root 4096 Aug 17 15:53 test [root@named_server tmp]#
ext系列文件系统的管理工具:
mkfs.ext2;mkfs.ext3;mkfs.ext4(建议使用ext4)
mkfs -t ext2 等价于 mkfs.ext2
ext系列文件系统专用管理工具:mke2fs
mke2fs [OPTIONS] device
-t {ext2| ext3| ext4}:指明要创建的文件系统类型
mkfs -t ext2 等价于 mkfs.ext2 等价于 mke2fs -t ext2
-b {1024|2048|4094}:用于指明文件系统的块大小
-L LABEL:指明卷标
-j:创建有日志功能的文件系统ext3
-i 数字:指明inode与字节的比例;即每多少字节创建一个inode
dumpde2fs命令:显示ext系列文件系统的属性信息
dumpe2fs [-h] device
fsck:用于文件系统检测工具
因为进程意外中止或系统崩溃等原因导致操作系统非正常中止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议离线进行
swap文件系统:
Linux的交换分区必须是独立的文件系统;
且文件系统的system id必须为82
创建swap设备;mkswap命令
mkswap [OPTIONS] device
-L LABEL:指明卷标
-f:强制
文件系统的使用:
首先要挂载:mount 命令和umount命令
挂载点:作为一个文件的系统的访问入口
命令选项:
-r:只读挂载
-w:读写挂载
-n:默认情况下设备挂载或者卸载的操作会同步更新至/etc/mtab文件中,-n用于禁止此特性;
-t vfstype:
硬盘的挂载顺序:指明要挂载的设备上的文件系统的类型;多数情况下可省略
(1)创建分区。
fdisk /dev/sba
(2) 初始化分区,创建文件系统
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
(3)创建挂载点
mkdir data_a data_b
(4)挂载分区
mount /dev/sda1 /data_1
mount /dev/sda2 /data_2
命令:du -sh:表述显示目录下所有文件的大小
df -h:查看磁盘分区使用情况

浙公网安备 33010602011771号