磁盘分区格式化和文件系统管理

倖福魔咒の 提交于 2019-12-27 07:10:15

 

一、硬盘分区

 

 

 

 

 

 

 

1.每个扇区,512字节
2.每个磁道划分为63个扇区
3.逻辑磁头(盘面)数设为255个
4.一个柱面的大小=255x63x512字节=8 MB
5.硬盘或分区的容量=柱面的大小x柱面数

 

磁面(head

 

 

1.硬盘一般是由一片或几片圆形薄膜叠加而成。每个圆形薄膜都有两个"面"(Side),这两个面都是用来存储数据的。
2.依次称为0面、1面、2面……由于每个面都专有一个读写磁头,也常用0头(head)、1头……称之。
3.硬盘面数(或头数),少的只有2面,多的可达数十面。

 

 

 

 

track------磁道-----一个圈

 

 

1.读写硬盘时,磁头不动,磁盘是旋转的,则连续写入的数据是排列在一个 圆周上的。我们称这样的圆周为一个磁道(Track)。
2.磁头不动,就是在一个磁道上读写
3.磁头移动,就会在不同磁道上读写

 

 

 

 

 

cylinder----柱面---------外观象一个圆筒子

 

 

各面上磁道号相同的 磁道合起来,称为一个柱面(cylinder)距轴的距离相同的一组track
cylinder也是磁盘分区时的最小单位,分区是按磁道和柱面连续分布的

 

 

Sector

 

一个track上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被按512字节划分成若干段,每段称为一个扇区(Sector)。
一个扇区size是固定的512字节

 

 

硬盘启用过程

 

 

新硬盘经历哪些步骤才能存储文档?

 

识别硬盘-->规划分区-->格式化-->挂载-->写入/读取数据

 

 

 

分区模式

 

MBRMaster Boot Record

 

 

1.主引导记录模式,也称为MSDOS模式

 

2.硬盘的第一个扇区(512字节)作为MBR扇区,用来记录引导程序和分区表

 

3.分区表只有64个字节,其中存储着硬盘上每个分区的信息,一个分区记录需要16字节

 

4. 此模式支持最多4个主分区、最大容量约2.2TB

 

 

 

GPTGUID Partition Table

 

 

1.全局唯一标识分区表

 

2. 突破固定大小64字节的分区表限制

 

3. 最多可支持128个主分区,最大支持18EB

 

注意: 1 EB =1024 PB = 1024 x 1024 TB

 

 

 

磁盘分区工具

 

 

 

 

fdisk,只支持MSDOS分区布局

 

语法:

 

格式:fdisk 磁盘名

 

 

 

 

常见的fdisk交互指令

a:切换分区启动标签
b:编辑BSD系统中的磁盘卷标
c、切换成为DOS兼容的标签
d:删除分区
l:列出支持的分区类型信息
m:查看帮助信息(显示fdisk命令菜单)
n:新建分区
o:建立空的DOS分区数据表
p:列表查看分区信息
q:放弃分区设置并退出
-t:变更分区类型
      82 swap
        83 ext3    (默认)
        8e LVM
        fd raid
        b  fat32
u:修改显示的单位
v:检查分区数据表
w:保存分区设置并退出
x:进阶功能

 

 

 

 

 

常用分区系统标识符

 

 

b:windows 95的FAT使用的分区
c:windows 95的FAT使用的分区(支持LBA)
f:windows 95生成的扩充分区
81:Linux的第一代ext使用
82:Linux的置换内存空间
83:Linux的第二代ext(ext2)与第三代ext(ext3)
8e:Linux LVM使用的分区
fd:Linux的“软件磁盘阵列”使用的分区

 

 

 

 

分区表记录

 

 

Device:分区的设备文件名
Boot:该分区是否可以被启动。整个硬盘只能有一个分区被标识为可启动。
Start:分区起始柱面编号
End:分区结束柱面编号
Blocks:分区的大小,单位是块(Block),默认一个块是1KB

 

 

 

例子:

 

fdisk -l /dev/sda     #查看分区表
fdisk /dev/xdy        #对/dev/xdy分区

 

 

 

 

parted,支持MSDOSGPT分区布局

 

 

 

parted 常用分区工具用法

 

 

查看分区表:parted   /dev/sdb   print
进入交互模式:parted  /dev/sdb
获取交互指令帮助:(parted) help
新增分区:mkpart [primary|logical|extended] [ext4|vfat]开始 结束
删除指定的分区:rm 序号
建立指定模式分区表:mktable msdos|gpt
mapart primary 文件系统类型 start end #指定大小或百分比%作为开始、结束位置

 

 

 

 

 

例子:

 

parted /dev/sda print   #查看分区表
parted /dev/xdy       #对/dev/xdy分区

 

 

 

 

识别新的分区表

 

1.当硬盘的分区表被更改以后

 

需要将分区表的变化通知Linux内核

否则在访问分区时可能会找不到准确的设备

 

 

 

 

2.以下三种方式都可以

 

 partx -a /dev/sda

 partprobe /dev/sda

 reboot

 

 

二、格式化分区

 

 

常见文件系统

 

 

Linux文件系统

 

 

 

 

EXT4,第四代扩展(Extended)文件系统
SWAP,交换文件系统

 

 

 

 

支持的其他文件系统

 

 

 FAT 16、FAT 32、NTFS
 XFS,JFS,GFS

 

 

格式化工具

 

mkfsMake Filesystem

格式:mkfs -t 文件系统类型 分区设备

 

mkfs -t 文件类型 /dev/xdyz    #格式化 
mkfs.文件类型 /dev/xdyz     #格式化,两种方式功能相等

 

 

 

注意:

 

 

 

mkfs作为前端,通过-t ...调用各程序
使用mkfs.ext4时可通过-L选项为文件系统指定卷标

 

 

 

 

 

 

举例:

[root@localhost ~]# mkfs.ext3  /dev/sda2

 

创建EXT4文件系统

 

mkfs -t ext4 /dev/sda6
mkfs.ext4 /dev/sda6

 

 

 

创建VFAT文件系统

1.将分区/dev/sda7格式化成FAT32 文件系统

 

mkfs -t vfat -F 32 /dev/sda7

mkfs.vfat -F 32 /dev/sda7百分比

 

 

 

 

 

 

分区扩展SWAP空间

 

格式化交换分区

 

mkswap命令

格式:

 

mkswap  -f 交换文件

 

 

fdisk命令中,调整分区类型为82

 

mkswap  /dev/xdyz #把/dev/xdyz格式化成swap类型分区

swapon  /dev/xdyz #启用/dev/xdyz到swap分区中

swapoff  /dev/xdyz #停用/dev/xdyz

swapon -s         #查看交换分区

 

dd

 

复制底层的数据流,可以复制文件的一部分

 

 

 

 

 

if=数据来源
of=数据存储目标
bs=1    //以一个字节为1个单位
count=2   
seek=#: 创建数据文件时,跳过的空间大小;

 

 

例子:

dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1

dd if=/dev/zero of=/var/swapfile bs=1M count=1024

 

 

 

文件系统管理

 

 

e2label命令

 

为EXT分区命名

 

语法:

 

格式:e2lable 设备名 ["卷标名"]

 

 

例子:

 

e2label /dev/sdb1 "disk2part1"    设置卷标
 e2label /dev/sdb1            查看卷标
 e2label /dev/sdb1 ""            删除卷标

 

 

 

blkid命令——Block Identity

 

 

 

查看设备UUID

语法:

格式:blkid 设备名

 

 

tune2fs命令

 

查看EXT分区属性

 

 

语法:

 

格式:tune2fs [选项] 设备名

 

 

 

 

选项:

tune2fs: 调整文件系统的相关属性
    -j: 不损害原有数据,将ext2升级为ext3;
    -L LABEL: 设定或修改卷标; 
    -m #: 调整预留百分比;
    -r #: 指定预留块数;
    -o: 设定默认挂载选项;
        acl
    -c #:指定挂载次数达到#次之后进行自检,0或-1表关闭此功能;
    -i #: 每挂载使用多少天后进行自检;0或-1表示关闭此功能;
    -l: 显示超级块中的信息;

 

dumpe2fs

 显示文件属性信息

 

-h: 只显示超级块中的信息

 

 

 

fsck

检查并修复Linux文件系统

选项:

    -t FSTYPE: 指定文件系统类型
    -a: 自动修复

 

 

 

e2fsck

专用于修复ext2/ext3文件系统

 

选项:

 

    -f: 强制检查;
    -p: 自动修复;

 

 

 

 

挂载文件系统

 

mount命令

 

语法:

 

格式:mount [选项] 设备名 挂载点

  mount [options] [-o options] DEVICE MOUNT_POINT

 设备:

 

    设备文件:/dev/sda5
        卷标:LABEL=""
        UUID: UUID=""

 

 

 

 挂载点:目录

 

要求:

 

      1、此目录没有被其它进程使用;
            2、目录得事先存在;
            3、目录中的原有的文件将会暂时隐藏;

 

 

 

 

 

常用命令选项

 

 

 -a  加载所有fstab已配置的文件系统; 表示挂载/etc/fstab文件中定义的所有文件系统      -t  指定挂载类型
 -o  指定挂载参数
 -L  使用卷标名挂载
 -o loop    挂载回环设备              //将ISO镜像文件挂载到指定位置
 --bind    目录挂载目录下

  -n: 默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用—n选项意味着挂载设备时,不把信息写入此文件;

  -t FSTYPE: 指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;

  -r: 只读挂载,挂载光盘时常用此选项

  -w: 读写挂载

  -o: 指定额外的挂载选项,也即指定文件系统启用的属性;

    remount: 重新挂载当前文件系统

    ro: 挂载为只读

    rw: 读写挂载

 

fstab:开机自动挂载,进入vim /etc/fstab配置完 第一时间输入mount -a

mount: 显示当前系统已经挂载的设备及挂载点

 

挂载完成后,要通过挂载点访问对应文件系统上的文件;

 

 

文件系统的配置文件/etc/fstab

 

 

 OS在初始时,会自动挂载此文件中定义的每个文件系统

要挂载的设备    挂载点        文件系统类型        挂载选项        转储频率(每多少天做一次完全备份)        文件系统检测次序(只有根可以为1)        

 

例子:

/dev/sda5        /mnt/test        ext3        defaults        0 0

 

 

fuser:

验证进程正在使用的文件或套接字文件

 

 

  -v: 查看某文件上正在运行的进程
    -k:
    -m
    
    fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程

 

 

 

 

df命令——Disk usage of File system

 

 

查看磁盘使用情况

 

语法:

 

格式:df [选项]... [文件]...

 

 

 

 

常见命令选项

 

  -h    易读方式查看分区大小
    -T    列出文件系统类型

 

 

 

umount命令

 

语法:

格式:umount 设备名|挂载点

 

常用命令选项

 

 

 -a:卸载所有已挂载的非伪文件系统

 

 

 

卸载注意事项:

 

挂载的设备没有进程使用;

 

 

 

 

 

开机自动挂载

 

 

/etc/fstab 开机自动挂载文件

 

 

1.查看设备UUID

[root@localhost ~]# blkid  /dev/sdb1  /dev/sdb5    //查看需要挂载的设备的UUID

 

2.进入fstab配置

 

进入配置:

[root@localhost ~]#vim  /etc/fstab   

 

格式:

 

 

设备文件(卷标名/UUID)  挂载点   类型   挂载参数   备份标记  检测顺序
UUID="............"       /mnt    ext3   defaults       0         0

 

etc/fstab文件的语法

 

DEVIDE     MOUNT_POINT    RFS_TYPE     MOUNT_OPTIONS     DUMP_FREQ      FSCK_ORDER

 

 

详解:

DEVIDE:文件系统的名称,可以使用设备文件名或文件系统的标签名称
MOUNT_POINT:挂载点路径,必须是绝对路径,而且挂载点必须是一个目录
FS_TYPE:文件系统的类型
MOUNT_OPTONS:挂载这个文件系统时的参数
DUMP_FREQ:当使用dump工具时,是否要备份这个文件系统,以及备份的频率。DUMP_FREQ如果是1,代表需要备份;0则代表不需备份。
FSCK_ORDER:执行fsck时,是否要检查这个文件系统以及检查的顺序。如果FSCK_ORDER为0,则代表执行fsck -A时不会检查这个文件系统;      而使用非0的正整数则代表要检查。FSCK_ORDER非0时,也代表执行的顺序。例如1代表第一顺位....以此类推。

 

 

 

 

3.配置完成  加载更新挂载点

 

 

 

 

[root@localhost ~]# mount –a    //加载更新下挂载点
[root@localhost ~]# mount   查看

 

 

 

 

autofs触发挂载

 

 

1.依赖于autofs服务,由autofs服务提供的按需访问机制

 

只要访问挂载点,就会触发响应,自动挂载预先指定的设备
闲置超过时限(默认5分钟)后,会自动卸载

 

 

2.主配置文件 /etc/auto.master

监控点目录 挂载配置文件的路径

挂载点父目录 挂载配置文件(自定义)

 

3.挂载配置文件,比如/etc/auto.misc

访问点子目录 -挂载参数 :设备名

 

4.访问autofs自动挂载的光盘目录

确认autofs服务已启动

 

5./etc/auto.xxx 挂载配置文件   

格式:

 

挂载点子目录(不需要创建)    挂载参数 :设备名

 

 

# /etc/init.d/autofs stop 停止autofs服务

# /etc/init.d/autofs start 开启autofs服务

 

 

fsck

检查文件系统

 

 

常用命令:

 

 

A:依据/etc/fstab的设置,检查所有文件系统的完整性
a:自动修复文件系统
y:去修复时,询问是否执行某一个动作
f:即时文件系统是干净的,也要强制检查文件系统

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!