linux磁盘管理和文件系统管理

linux 磁盘管理

设备文件

1[vagrant@maozhongyu ~]$ll /dev/sda
2brw-rw---- 1 root disk 8, 0 2月  10 10:28 /dev/sda
3
4ll /dev

8 : 主设备号:major number, 标识设备类型

0 : 次设备号:minor number, 标识同一类型下的不同设备

设备类型

块设备:block,存取单位“块”,磁盘

字符设备:char,存取单位“字符”,键盘

添加磁盘后,立马识别

1[root@maozhongyu ~]#echo '- - -' > /sys/class/scsi_host/host0/scan
2[root@maozhongyu ~]#echo '- - -' > /sys/class/scsi_host/host1/scan
3[root@maozhongyu ~]#echo '- - -' > /sys/class/scsi_host/host{$i}/scan
4
5lsblk

硬盘接口类型

1IDE:133MB/s,并行接口,早期家用电脑
2SCSI:640MB/s,并行接口,早期服务器
3SATA:6Gbps,SATA数据端口与电源端口是分开的,即需要两条线,一条数据线,一条电源线
4SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行
5USB:480MB/s
6M.2:

管理存储

使用磁盘空间过程

  1. 设备分区
  2. 创建文件系统
  3. 挂载新的文件系统

为什么分区

  • 优化I/O性能
  • 实现磁盘空间配额限制
  • 提高修复速度
  • 隔离系统和程序
  • 安装多个OS
  • 采用不同文件系统

分区方式:

两种分区方式:MBR,GPT

MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T

MBR分区:

划分分区的单位:

CentOS 5 之前按整柱面划分

CentOS 6 版本后可以按Sector划分

0磁道0扇区:512bytes

446bytes: boot loader 启动相关

64bytes:分区表,其中每16bytes标识一个分区

2bytes: 55AA,标识位

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区:主和扩展分区对应的1–4,逻辑分区从5开始,/dev/sda5, 扩展分区本身是不能使用的,需要从使用它的逻辑分区。

GPT分区

GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)

使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份, 并有CRC校验位

UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动

BIOS和UEFI

BIOS是固化在电脑主板上的程序,主要用于开机系统自检和引导操作系统。目前新式的电脑基本上都是UEFI启动

BIOS(Basic Input Output System 基本输入输出系统)主要完成系统硬件自检和引导操作系统,操作 系统开始启动之后,BIOS的任务就完成了。系统硬件自检:如果系统硬件有故障,主板上的扬声器就会 发出长短不同的“滴滴”音,可以简单的判断硬件故障,比如“1长1短”通常表示内存故障,“1长3短”通常 表示显卡故障

BIOS+MBR 、 UEFI+GPT

分区工具fdisk和gdisk

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

fdisk [device…]             管理MBR分区

gdisk [device…]             类fdisk 的GPT分区工具

1fdisk /dev/sdb  # 新加的磁盘
2
3fdisk -l /dev/sda # 查看已经分好的磁盘情况包含其分区情况
1p 分区列表
2t 更改分区类型
3n 创建新分区
4d 删除分区
5v 校验分区
6u 转换单位
7w 保存并退出
8q 不保存并退出

1个扇区才512字节

  1. 按n 创建新分区
  2. 选择主分区还是扩展分区
  3. 创建第一个分区如1G,依次进行
  4. 分好后 按w保存并推出

gdist和fdisk差不多。

文件系统管理

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的 方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的 存取,安全控制,日志,压缩,加密等

Linux 常用文件系统

  • ext2:Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分 区
  • ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复
  • ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
  • xfs:SGI,支持最大8EB的文件系统
  • swap
  • iso9660 光盘
  • btrfs(Oracle)
  • reiserfs

云服务器磁盘挂载

购买腾讯云的50g 磁盘的服务器使用df -h 查看只有 30g 容量

 1root@ins-ddYvQaGk:/# df -h
 2Filesystem      Size  Used Avail Use% Mounted on
 3udev            984M     0  984M   0% /dev
 4tmpfs           200M  988K  199M   1% /run
 5/dev/vda1        29G   21G  8.8G  70% /
 6tmpfs           997M     0  997M   0% /dev/shm
 7tmpfs           5.0M     0  5.0M   0% /run/lock
 8tmpfs           997M     0  997M   0% /sys/fs/cgroup
 9/dev/loop1      117M  117M     0 100% /snap/core/14784
10/dev/loop3      117M  117M     0 100% /snap/core/14447
11/dev/loop4       64M   64M     0 100% /snap/core20/1822
12/dev/loop5       44M   44M     0 100% /snap/certbot/2772
13/dev/vda15      105M  4.4M  100M   5% /boot/efi
14/dev/loop6       44M   44M     0 100% /snap/certbot/2836
15/dev/loop2       64M   64M     0 100% /snap/core20/1828
16tmpfs           200M     0  200M   0% /run/user/0
17
18
19
20root@ins-ddYvQaGk:/# lsblk
21NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
22loop1     7:1    0 116.8M  1 loop /snap/core/14784
23loop2     7:2    0  63.3M  1 loop /snap/core20/1828
24loop3     7:3    0 116.7M  1 loop /snap/core/14447
25loop4     7:4    0  63.3M  1 loop /snap/core20/1822
26loop5     7:5    0  43.9M  1 loop /snap/certbot/2772
27loop6     7:6    0  43.9M  1 loop /snap/certbot/2836
28sr0      11:0    1   370K  0 rom
29vda     252:0    0    30G  0 disk
30├─vda1  252:1    0  29.9G  0 part /
31├─vda14 252:14   0     4M  0 part
32└─vda15 252:15   0   106M  0 part /boot/efi
33vdb     252:16   0    20G  0 disk /data
34└─vdb1  252:17   0    20G  0 part

创建vdb的文件系统

1mkfs -t ext4 /dev/vdb

挂载到具体目录

1mkdir -p /data
2mount /dev/vdb /data
3
4
5# 查看效果
6df -h
7fdisk -l /dev/vdb