Linux磁盘和文件系统管理--9.1作业


一 Linux磁盘管理


1.硬盘分为:机械式硬盘、SSD

2.机械式

1)盘片(Platter):一块硬盘有若干盘片,每个盘片有可以存储数据的上、下两盘面(Side)。这些盘面堆叠在主轴上高速旋转,它们从上至下从"0"开始依次编号;

2)磁道(Track):每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号;

3)扇区(sector): 最小的物理存储单位,每个扇区为512bytes;将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时读出或写入。

4)柱面(cylinder): 分区的基本单位;所有盘面上的同一磁道构成一个圆柱,称作柱面;

5)主引导记录(MBR,Master Boot Record):安装引导加载程序的地方512bytes

446字节: bootloader启动引导加载器

64字节: filesystem allocation table文件系统分配表,其中每16字节标识一个分区,所以最多分配4个主分区

2字节:标记此MBR中的数据是否有效,其中55AA表示有效


3.磁盘接口类型:

1)IDE (ATA):133MB/s,Centos5下标注为:/dev/hd

SCSI: 640MB/s

SATA:6Gbps

SAS:6Gbps

USB:480MB/s


2)识别硬盘设备:/dev/sd

标记不同的硬盘设备:/dev/sd[a-z]

标记同一设备上的不同分区:/dev/sd[a-z][1-]

1-4: 主或扩展分区标识

5+:逻辑分区标识


3)设备文件被称为特殊文件,用设备号标记,由major, minor组成。

major: 设备类型;让内核识别相应驱动

minor: 同一类型下的不同设备;


4)"块":block,存取单位是'块',随机设备

"字符":character,存取单位是'字符',线性设备


5)GPT:GUID磁碟分割表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准,不同于MBR


4.分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;

1)分区工具: fdisk, parted, sfdisk

2)fdisk工具:manipulate disk partition table(操作磁盘分区表)

  • 分区管理子命令(fdisk /dev/sda):

    p: print the partition table               显示磁盘分区表

    n: add a new partition                       创建新分区

    d: delete a partition                           删除分区

    t: change a partition's system id   修改分区ID

    l: list known partition types            列出所有支持ID类型

    w: write table to disk and exit      保存退出

    q: 放弃修改并退出

    m: 获取帮助


  • 创建完成之后,查看内核是否已经识别新的分区: # cat /proc/partitions


3)内核重读磁盘分区表命令:

(1)CentOS 5: partprobe [DEVICE]

CentOS 6和7: partxkpartx

(2)partx命令:

partx DEVICE

partx -a DEVICE

partx -a -n M:N DEVICE     或者   M  ,  M:   ,  :N

[root@localhost ~]# partx - /dev/sdb
NR START      END  SECTORS SIZE NAME UUID
1  2048 20973567 20971520  10G
5  4096 10489855 10485760   5G

(3)kpartx命令: kpartx -af DEVICE



二  Linux文件系统管理



1.文件系统

1)VFS(Virtual File System虚拟文件系统),是Linux文件系统对外的接口。任何要使用文件系统的程序都必须经由这层接口来使用它。


VFS 目录树结构:


2)Linux:ext2, ext3, ext4第四代扩展文件系统(Fourth extended filesystem, reiserfs, xfs, btrfs, swap(交换分区)

光盘:iso9660

Windows: fat32(vfat), ntfs

Unix: ffs, ufs, jfs, jfs2

网络文件系统:nfs, cifs

集群文件系统:ocfs2, gfs2

分布式文件系统:ceph, moosefs, mogilefs, hdfs, gfs, glusterfs

3)日志型文件系统:

(1)非日志型文件系统:ext2

日志型文件系统:ext3

(2) swap:交换分区;当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。


2.创建工具:

1)mkfs (make filesystem)

2)ext系列文件系统的专用管理工具:

mke2fs -t {ext2|ext3|ext4} DEVICE

-b BLOCK: 1024, 2048, 4096

-L 'LABEL': 设定卷标

3)blkid命令:

blkid DEVICE

LABEL, UUID, TYPE


3.创建文件系统:

在分区上执行格式化(高级格式化)要使用某种文件系统需满足两个条件:

  • 内核中:支持此中文件系统

  • 用户空间:有文件系统管理工具

mke2fs [OPTION]... DEVICE

-t {ext2|ext3|ext4}

-b {1024|2048|4096}

-L 'LABEL'

-j: mke2fs -t ext3

-i #:多少个字节分配一个inode

-N #:

-m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;

-O FEATURE[,...]

-O ^FEATURE:关闭此特性


4.文件系统属性查看及调整工具:

1)e2label:命名和查看卷标

[root@localhost ~]# e2label /dev/sdb5


[root@localhost ~]# e2label /dev/sdb5 TEST

[root@localhost ~]# e2label /dev/sdb5

TEST

2)tune2fs:显示ext系列文件系统的属性,或调整其属性;

-l:显示超级块中的信息;显示整个文件的属性及布局等相关信息;

-L 'LABEL':修改卷标;

-m #: 调整预留给管理员的管理空间百分比;

-j: ext2 --> ext3

-O:文件系统属性的启动或关闭

-o:文件系统默认挂载选项的启用或关闭


3)dumpe2fs:显示文件系统的布局和超级块信息

-h: 仅显示超级块信息;


5.文件系统检测:

1)fsck: Filesystem check 用于检查并且试图修复文件系统中的错误。当文件系统发生错误四化,可用fsck指令尝试加以修复。

-t<文件系统类型>:指定要检查的文件系统类型

-a: 自动修复错误

-r: 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;

-f: 强制检测


2)e2fsck:ext系列文件系统专用的检测修复工具;

-y: 自动回答为"yes"

-f:force


6.文件系统的挂载和使用:

1)kernel --> rootfs(分区)

rootfs分区要包含: bin, sbin, etc, lib, lib64, dev, tmp, proc, sys

/sbin/init

2)挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为;

3)解除此关联关系的过程叫卸载;

4)挂载点:mount point, 设备挂载至目录;

注意:挂载点在挂载在之后,其内部原有的文件会被暂时隐藏;建立使用空目录做为挂载点;


5)挂载方法:

(1)mount:通过读取/etc/mtab文件来显示当前系统所有已经挂

2mount -a:挂载/etc/fstab文件中的所有支持自动挂载的文件系统;

3)格式:mount [options] [-o options]  DEVICEMOUNT_POINT

         DEVICE:要挂载的设备:

                                     (1)设备文件:/dev/sda5

                                     (2)卷标:-L 'LABEL'

                                     (3)UUID-U 'UUID'

                                     (4)伪文件系统名称

         [options]:选项

-t:文件系统类型

-r: 以“只读”方式挂载此文件系统

-w: 以“读写”方式挂载此文件系统

-n:每个文件系统在挂载时都会自动更新/etc/mtab文件,-n用于禁止此功能;

此时,如果想查看挂载的所有文件系统:cat/proc/mounts

a: 自动挂载所有支持自动挂载的设备;

-B:绑定目录至另一个目录上;

-o 挂载选项:

async:异步模式(默认)

sync: 同步模式

atime/noatime:是否更新访问时间戳;

diratime/nodiratime:是否更新目录的访问时间戳;

auto/noauto: 是否允许此设备被自动挂载;

exec/noexec:是否允许执行此文件系统上应用程序;

dev/nodev:是否支持在此设备上使用设备文件;

remount:重新挂载

ro:只读挂载

rw:读写挂载

user/nouser: 是否允许普通挂载此设备;

acl:是否支持此设备上使用facl

defaultsrw, suid,dev, exec, auto, nouser, and async

 

5umount:卸载命令

# umount DEVICE

# umount MOUNT_POINT

查看正在访问指定挂载点的进程:

# fuser -v MOUNT_POINT

终止所有正在访问指定的挂载点的进程:

# fuser -km MOUNT_POINT

 

7.交换分区:

1free命令:查看memoryswap的使用状态

         -m:MB为单位

         -g:GB为单位

wKioL1X0AQeyqt5SAAC2PYmAMek653.jpg

2mkswap:创建交换分区

mkswap  [option] DEVICE

-L 'LABEL'   

3swapon:启用交换分区

swapon [option] [DEVICE]

         -a:激活所有交换分区

         -pPRIORITY: 设定其优先级;

4swapoff:禁用交换分区

         swapoff[option] [DEVICE]

 

8.文件系统等空间占用信息的查看:

1df: disk free查看当前系统上已挂载的分区,及其空间使用信息、inode信息

-h: human-readable

-i: inode数量

-P: Posix兼容的格式输出

wKiom1Xz_zqSkUq9AALSeGKAUdc909.jpg

2du: disk usage 估计文件空间使用

-h: human-readable

-s: summary

wKiom1Xz_2KwmrZUAACH6595R58904.jpg

9.文件系统相关挂载配置文件/etc/fstab(每行定义一个文件系统)

1)格式:要挂载的设备或伪文件系统    挂载点    文件系统类型     挂载选项       转储频率     自检次序

2)要挂载的设备:设备文件、LABEL=UUID=、伪文件系统名称

3)挂载选项:defaults

4)转储频率:

0不转储

1每天转储

2每隔一天转储

5)自检次序:

0:不自检(建议设置不自检,做手动监测)

1:首先自检,通常只有/才为1

 

10.文件系统上的链接文件

1)硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用

硬链接存在以下几点特性:

l  文件有相同的inode 及 data block;

l  只能对已存在的文件进行创建;

l  不能交叉文件系统进行硬链接的创建;

l  不能对目录进行创建,只可对文件创建;

l  删除一个硬链接文件并不影响其他有相同 inode 号的文件;

l  两个路径指向同一个inode

l  不能跨分区进行

l  指向同一个inode的多个不同路径; 创建文件的硬链接会增加inode的引用计数;

l  删除硬链接仅是删除其一个访问路径,只到最后一个路径被删除;

 

2)软链接:也称符号连接,新建的文件以“路径”的形式来表示另一个文件,和windows的快捷方式类似

软链接存在以下几点特性:

l  链接文件的数据指向另一个文件路径;

l  可以对目录进行;

l  可以跨分区;

l  指向的是另一个文件路径;而非inode;

l  文件创建符号链接不会增加其引用计数;

l  删除原文件,符号链接文件也将无法;

3图解区别

wKioL1X0AceTL61PAABsRyFpMRM884.jpg

练习:

创建一个10G文件系统,类型为ext4,要求开机可自动挂载至/mydata目录;

1.关闭Centos7,在Vmware中添加一块20G硬盘,开机;

2.开机后执行# fdisk �Cl,显示会出现新的磁盘sdb

wKiom1Xz_9HReyZfAANOfvl1rrc285.jpg

3.在新磁盘中创建一个10G的分区

wKioL1X0AjKAkNnkAAMs53SbdGg471.jpg

W键保存退出

4.重读分区表并查看系统内核是否识

wKioL1X0Aliy_vCEAAGUPnmUAE4715.jpg

5.对新建的分区进行格式化:

wKiom1X0AFqTYzRdAAIUE3sCJhQ156.jpg

6. 创建mydata目录,并使用mount命令挂载至此目录

wKiom1X0AI2gxFsxAAHi6j9pWpw363.jpg

7.编辑/etc/fstab配置文件,使得开机后系统自动挂载该分区

wKioL1X0AuDBY4cAAAHqMewRXsE895.jpg

你可能感兴趣的:(linux,style,center)