linux 磁盘 文件系统,Linux 磁盘和文件系统

Linux 磁盘和文件系统

?? 当我们拿到一块全新的磁盘的时候, 我们并不能直接使用, 而是需要经过分区, 格式化, 挂载后, 才能被操作系统识别并写入和读取数据. 不同的操作系统的文件系统有所不同, 因此对磁盘的划分方式也不一样.

一. 磁盘

1. 结构

?? 在计算机领域, 磁盘是现在使用最多, 性价比最高的存储介质. 随着存储技术的不断发张, 磁盘又分为机械硬盘和固态硬盘. 机械硬盘主要由: 盘片, 磁头, 盘片转轴和磁头控制器, 数据转换器, 接口等几部分组成. 数据存储在盘片上, 在电机的带动下盘片高速旋转, 每个盘片的存储面上有一个磁头, 磁头负责对盘片上数据的写入和读取. 因此, 电脑突然断电会使得正在写入的文件完整性被破坏, 日常使用中应该防止电脑突然断电.

磁盘结构如图所示:

ab7653affab982b574eb7acc55df2e04.gif

磁头:(head) 负责读取和写入数据到盘片上, 每一个盘面对应一个磁头

磁道:(track) 把磁盘划分为许多同心圆, 从外到里依次编号为 0-1023

扇区:(sector) 把磁道划分为很多扇区, 是为磁盘的最小存储单元, 每一个扇区为 512bytes

柱面:(cylinder) 同一磁盘的所有盘片圆心都在转轴上, 每一个盘面的相同编号磁道共同组成柱面, 例如所有盘面的 0 磁道组成了 0 柱面.

2. 磁盘的寻址方式

?? 磁盘的寻址方式可分为 CHS 和 LBA.

CHS

采用 24bit 寻址, 因此最大寻址空间为 2^24*512byte=8GB

地址的前 10bit 表示柱面 (cylinder), 因此柱面的最大数量为: 2^10=1024

中间 8bit 为磁头 (head), 磁头数等于盘面数, 最大盘面数为: 2^8=256

最后 6bit 为扇区 (sector), 每一磁道可划分的扇区数为 2^6=64

LBA

??LBA 是一个整数, 通过转换成 CHS 格式完成磁盘具体寻址, 采用 48bit 寻址, 因此最大空间支持 128PB

因此, 当磁盘容量小于 8GB 时, 使用 CHS 或 LBA 寻址方式都可以. 但磁盘容量大于 8GB 时, 只能使用 LBA 寻址方式.

二. 磁盘分区

?? 对磁盘的结构和寻址方式有了一定了解以后, 接下来我们就可以对磁盘进行分区了.

1. 分区方式

分区方式包括: MBR 和 GPT

MBR

??MBR:Master Boot Record, 于 1982 年发布, 使用 32bit 标识扇区数, 最大分区为 2T, 按柱面划分. 其中整块磁盘的第 0 磁道第 0 扇区记录了 OS 引导程序和分区信息, 因此这一块扇区对整块磁盘是很重要的.

0 磁道 0 扇区: 512bytes

446bytes:boot loader

64bytes: 分区表, 每 16bytes 标识一个分区, 因此 MBR 最多可划分为

4 个主分区或者 3 主分区 + 1 扩展 (扩展可分为 n 个逻辑分区)

GPT

??GPT:GUID partition table 支持 128 个分区, 无主次之分. 采用 128bit 表示磁盘和分区 GPT 分区表, 自动备份在头和尾, 相比于 MBR 而言, GPT 可以适应更大级别的数据量和具有分区信息备份功能.

2.linux 中的分区方法

?? 在 linux 系统中, 对 SCSI,SATA,SAS 接口的硬盘都命名为 sd, 后面跟上 a,b,c,d... 来命名, 同一块银盘的不同分区则词用 1,2,3... 来区别命名.

lsblk

lsblk 命令用于列出块设备信息, 查看磁盘是够已经被 OS 识别.[root@centos7~]#lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda8:00200G0disk

sda18:101G0part/boot

sda28:2050G0part/

sda38:3030G0part/data

sda48:401K0part

sda58:503G0part[SWAP]

sdb8:16020G0disk

sr011:013.7G0rom/media/cdrom

parted

parted 命令用于对磁盘分区的划分, 其操作都是实时生效的, 因此使用的时候应该慎重.

parted /dev/sdb mklabel gpt|msdos 指定磁盘为 MBR 或 GPT

parted /dev/sdb print 打印磁盘分区信息到屏幕上

parted /dev/sdb mkpart primary 创建分区, 默认单位为 M

parted /dev/sdb rm 1 删除分区 1

fdisk 和 gdisk

gdisk 是一个类 fdisk 的 GPT 分区工具, 其使用方法和 fdisk 一样

fdisk -l [-u] [device] 查看分区

fdisk /dev/sda 之后将进入交互界面

fdisk 子命令:

p 分区列表

t 更改分区类型

n 创建新分区

d 删除分区

v 校验分区

u 转换单位

w 保存并退出

q 不保存并退出

分区完成后, 需要通过以下命令同志内核重新读取硬盘分区表

查看内核是否已经识别新的分区:

cat /proc/partitions

centos6 通知内核重新读取硬盘分区表

新增分区用partx-a/dev/DEVICE

kpartx-a/dev/DEVICE-f:force

删除分区用

partx -d --nr M-N /dev/sdb

CentOS 5,7: 使用 partprobe

partprobe /dev/sdb

三. 文件系统

?? 文件系统是操作系统用于明确存储设备上的文件和数据结构, 负责管理和存储数据的软件结构. 不同的操作系统有不同的文件系统, 以下是 linux 中常见的文件系统:

ext2: 适用于那些分区容量不是太大, 更新也不频繁的情况, 例如 /boot 分区.

ext3: 是 ext2 的改进版本, 其支持日志功能, 能够帮助系统从非正常关机导致的异常中恢复. 它通常被用作通用的文件系统

ext4: 是 ext 文件系统的最新版. 提供了很多新的特性, 包括纳秒级时间戳, 创建和使用巨型文件 (16TB), 最大 1EB 的文件系统, 以及速度的提升

xfs:SGI, 支持最大 8EB 的文件系统

swap: linux 中的交换内存, 采用一块硬盘分区作为 swap 分区, 物理内存会将使用频率不高的文件放到 swap 中.

为新分区创建文件系统

mkfs

mkfs.FS_TYPE /dev/DEVICE 其中 FS_TYPE 为文件系统

mkfs -t FS_TYPE /dev/DEVICE 也可以用 - t 后面加上文件系统

-L : 设定卷标

mke2fs

mke2fs 是 ext 系列文件系统专用管理工具

-t {ext2|ext3|ext4} 指定文件系统

-b {1024|2048|4096} 指定分区中一个块的大小

-L 'LABEL' 指定卷标

-j: 相当于 -t ext3-i#: 为数据空间中每多少个字节创建一个 inode; 此大小不应该小于 block 的大小

-N#: 指定分区中创建多少个 inode

-I : 单个 inode 记录占用的磁盘空间大小, 128---4096

-m #: 默认 5%, 为管理人员预留空间占总空间的百分比

-O FEATURE[,...]: 启用指定特性

-O ^FEATURE: 关闭指定特性

tune2fs

tune2fs 用来重新设定 ext 系列文件系统可调整参数的值

-l: 查看指定文件系统超级块信息; super block

-L 'LABEL': 修改卷标

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

-j: 将 ext2 升级为 ext3

-O: 文件系统属性启用或禁用, -O ^has_journal

-o: 调整文件系统的默认挂载选项,-o ^acl

-U UUID: 修改 UUID 号

dumpe2fs:

块分组管理, 32768 块

-h: 查看超级块信息, 不显示分组信息

四. 挂载

?? 当我们完成了对硬盘创建文件系统之后, 最后一步挂载之后我们就可以愉快的使用新硬盘了.

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

mount

mount 查看当前已挂载的所有设备

mount DEVICE MOUNT_POINT

其中 DEVICE 为要挂载的设备.

1. 设备文件, 例如 / dev/sdb2

2. 卷标, 例如 - L '/mnt/sda1'

3.UUID, 设备的唯一标识, 128bit

MOUNT_POINT 为挂载点, 一般为一个空文件夹.

mount 常用命令选项

-o options:(挂载文件系统的选项), 多个选项使用逗号分隔

async: 异步模式 sync: 同步模式, 内存更改时, 同时写磁盘

atime/noatime: 包含目录和文件

diratime/nodiratime: 目录的访问时间戳

auto/noauto: 是否支持自动挂载, 是否支持 - a 选项

exec/noexec: 是否支持将文件系统上运行应用程序

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

suid/nosuid: 是否支持 suid 和 sgid 权限

remount: 重新挂载

ro: 只读 rw: 读写

user/nouser: 是否允许普通用户挂载此设备,/etc/fstab 使用

acl: 启用此文件系统上的 acl 功能

loop: 使用 loop 设备

defaults: 相当于 rw, suid, dev, exec, auto, nouser, async

卸载umount DEVICE

umount MOUNT_POINT

以上命令的挂载在系统重启之后会失效, 永久挂载的话需要把挂载信息写入 / etc/fstab 中

/etc/fstab 每行定义一个要挂载的文件系统, 每一列则为不同的选项.tmpfs/dev/shm tmpfs defaults00

123456

1, 要挂载的设备或伪文件系统

设备文件

LABEL:LABEL=""UUID:UUID=""

伪文件系统名称: proc, sysfs

2, 挂载点

3, 文件系统类型: ext4,xfs,nfs,none

4, 挂载选项: defaults ,acl,bind

5, 转储频率: 0: 不做备份 1: 每天转储 2: 每隔一天转储

6,fsck 检查的文件系统的顺序: 允许的数字是 0, 1, 和 2

0: 不自检

1: 首先自检; 一般只有 rootfs 才用

2: 非 rootfs 使用

完成以上几部, 我们就可以愉快的使用新硬盘了, 但对于硬盘更高级的挂载和文件系统的设置, 使得硬盘上的数据更加安全, 则需要更深入的学习和掌握.

来源: http://www.bubuko.com/infodetail-2724539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值