美文网首页
磁盘管理

磁盘管理

作者: 毛利卷卷发 | 来源:发表于2018-06-05 17:01 被阅读0次

设备文件

在linux中一切皆文件,如果想要操作硬盘等I/O设备,必须要通过系统调用(open(),read(),write(),close())来告诉内核去打开、读、写和关闭文件。设备文件的作用就是关联至一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信

设备类型

块设备:block,存取单位为块,磁盘
字符设备:char,存取单位为字符,键盘

设备号码

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

mknod

创建设备文件,语法:mknod [OPTION]... NAME TYPE [MAJOR MINOR],常用选项:

  • -m MODE:创建后的设备文件的访问权限

磁盘寻址

CHS

cylinder:柱面,head:磁头,sector:扇区,512bytes,track:磁道

采用24bit位寻址
其中前10位表示cylinder,中间8位表示head,后面6位表示sector、
最大寻址空间为:224*512/10243=8GB

LBA

采用48位寻址
通过转换成CHS格式完成磁盘具体寻址
最大寻址空间:248*512/10245=128PB

由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式

磁盘分区

分区原因

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

分区方式

MBR

MBR.jpg

最大寻址空间为:232*512/10244=2TB

传统BIOS运行流程:开机→BIOS初始化→BIOS自检→引导操作系统→进入系统

[root@centos6 ~]# hexdump -C -n 512 -v /dev/sda
00000000  eb 48 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.H..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 03 02  |.........|...t..|
00000040  80 00 00 80 fe 89 04 00  00 08 fa 90 90 f6 c2 80  |................|
00000050  75 02 b2 80 ea 59 7c 00  00 31 c0 8e d8 8e d0 bc  |u....Y|..1......|
00000060  00 20 fb a0 40 7c 3c ff  74 02 88 c2 52 f6 c2 80  |. ..@|<.t...R...|
00000070  74 54 b4 41 bb aa 55 cd  13 5a 52 72 49 81 fb 55  |tT.A..U..ZRrI..U|
00000080  aa 75 43 a0 41 7c 84 c0  75 05 83 e1 01 74 37 66  |.uC.A|..u....t7f|
00000090  8b 4c 10 be 05 7c c6 44  ff 01 66 8b 1e 44 7c c7  |.L...|.D..f..D|.|
000000a0  04 10 00 c7 44 02 01 00  66 89 5c 08 c7 44 06 00  |....D...f.\..D..|
000000b0  70 66 31 c0 89 44 04 66  89 44 0c b4 42 cd 13 72  |pf1..D.f.D..B..r|
000000c0  05 bb 00 70 eb 7d b4 08  cd 13 73 0a f6 c2 80 0f  |...p.}....s.....|
000000d0  84 f0 00 e9 8d 00 be 05  7c c6 44 ff 00 66 31 c0  |........|.D..f1.|
000000e0  88 f0 40 66 89 44 04 31  d2 88 ca c1 e2 02 88 e8  |..@f.D.1........|
000000f0  88 f4 40 89 44 08 31 c0  88 d0 c0 e8 02 66 89 04  |..@.D.1......f..|
00000100  66 a1 44 7c 66 31 d2 66  f7 34 88 54 0a 66 31 d2  |f.D|f1.f.4.T.f1.|
00000110  66 f7 74 04 88 54 0b 89  44 0c 3b 44 08 7d 3c 8a  |f.t..T..D.;D.}<.|
00000120  54 0d c0 e2 06 8a 4c 0a  fe c1 08 d1 8a 6c 0c 5a  |T.....L......l.Z|
00000130  8a 74 0b bb 00 70 8e c3  31 db b8 01 02 cd 13 72  |.t...p..1......r|
00000140  2a 8c c3 8e 06 48 7c 60  1e b9 00 01 8e db 31 f6  |*....H|`......1.|
00000150  31 ff fc f3 a5 1f 61 ff  26 42 7c be 7f 7d e8 40  |1.....a.&B|..}.@|
00000160  00 eb 0e be 84 7d e8 38  00 eb 06 be 8e 7d e8 30  |.....}.8.....}.0|
00000170  00 be 93 7d e8 2a 00 eb  fe 47 52 55 42 20 00 47  |...}.*...GRUB .G|
00000180  65 6f 6d 00 48 61 72 64  20 44 69 73 6b 00 52 65  |eom.Hard Disk.Re|
00000190  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
000001a0  10 ac 3c 00 75 f4 c3 00  00 00 00 00 00 00 00 00  |..<.u...........|
000001b0  00 00 00 00 00 00 00 00  a2 d6 02 00 00 00 80 20  |............... |
000001c0  21 00 83 5e 38 26 00 08  00 00 00 60 09 00 00 5e  |!..^8&.....`...^|
000001d0  39 26 83 fe ff ff 00 68  09 00 00 00 80 02 00 fe  |9&.....h........|
000001e0  ff ff 83 fe ff ff 00 68  89 02 00 00 40 01 00 fe  |.......h....@...|
000001f0  ff ff 05 fe ff ff 00 68  c9 03 00 98 36 0b 55 aa  |.......h....6.U.|
00000200

GPT

GPT:支持128个分区,使用64位,支持8Z(512Byte/block )64Z (4096Byte/block)

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

UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
UEFI运行流程:开机→UEFI初始化→引导操作系统→进入系统

管理分区

lsblk:列出块设备
fdisk:创建MBR分区
gdisk:创建GPT分区
parted:高级分区操作
partprobe:重读设置内存中的内核分区表

parted

这个工具既可以做MBR的分区,又可以做GPT的分区,主要时候用来做GPT的,

parted -l device:查看所有硬盘分区表

分区步骤

  1. 进入分区模式,查看帮助

    [root@centos7 app]# parted /dev/sdb
    GNU Parted 3.1
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    
    (parted) help
    
  2. 创建分区表

    (parted) mklabel gpt
    Warning: The existing disk label on /dev/sdb will be destroyed and
    all data on this disk will be lost. Do you want to continue?
    Yes/No? y
    
  3. 创建分区,创建完成就生效

    (parted) mkpart
    Partition name?  []? 
    File system type?  [ext2]? 
    Start? 1
    End? 2G
    
  4. 再创建一个分区

    (parted) mkpart 
    Partition name?  []? 
    File system type?  [ext2]? 
    Start? 2G
    End? 4G
    
  5. 退出

    (parted) quit
    Information: You may need to update /etc/fstab.
    

fdisk

支持msdos,在centos7中也支持gpt(不建议使用)

fdisk -l device:查看所有硬盘分区表

分区操作

  1. 进入分区模式,查看帮助

    [root@centos7 app]# fdisk /dev/sdb
    
    Command (m for help): m
    
  2. 新建分区表

    Command (m for help): o
    
  3. 新建分区

    Command (m for help): n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): 
    Using default response p
    Partition number (1-4, default 1): 
    First sector (2048-41943039, default 2048): 
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
    Partition 1 of type Linux and of size 2 GiB is set
    
  4. 再新建两个分区

  5. 新建第四个分区的时候,因为mbr分区只有4个分区,只能新建扩展分区(请把剩余空间都分给扩展分区),往后还可以新建分区,只不过都是逻辑分区

    Command (m for help): n
    Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): 
    Using default response e
    Selected partition 4
    First sector (12584960-41943039, default 12584960): 
    Using default value 12584960
    Last sector, +sectors or +size{K,M,G} (12584960-41943039, default 41943039): 
    Using default value 41943039
    Partition 4 of type Extended and of size 14 GiB is set
    
  6. 新建逻辑分区

    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 5
    First sector (12587008-41943039, default 12587008): 
    Using default value 12587008
    Last sector, +sectors or +size{K,M,G} (12587008-41943039, default 41943039): +2G
    Partition 5 of type Linux and of size 2 GiB is set
    
  7. 保存退出,所有操作都保存在内存中,如果不w保存退出,那么方案不会生效,因此w保存退出,q是不保存退出

    Command (m for help): w
    The partition table has been altered!
    

非交互式

[root@centos7 app]# echo -e "n\np\n\n\n+1G\nw\n" |fdisk /dev/sdb &> /dev/null

gdisk

只能划分gpt分区

gdisk -l:查看所有硬盘分区表

分区步骤

  1. 进入分区模式,查看帮助

    [root@centos7 app]# gdisk /dev/sdb
    
    Command (? for help): ?
    
  2. 新建分区表

    Command (? for help): o
    
  3. 新建分区

    Command (? for help): n
    Partition number (1-128, default 1): 
    First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
    Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +2G   
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 
    Changed type of partition to 'Linux filesystem'
    
  4. 新建分区,GPT可以创建128分区,依次类推

  5. 保存退出

    Command (? for help): w
    

非交互式

[root@centos7 app]# echo -e "n\n\n\n+2G\n\nw\ny\n" |gdisk /dev/sdb

同步分区表

在已经分区并且已经挂载在根文件系统的目录上的设备,再在这个设备上创建新的分区(比如在扩展分区上创建逻辑分区),内核可能在创建完成后无法直接识别

cat /proc/partitions:查看当前内核所加载的分区表

通知内核重读分区表的方式

partprobe:重读分区表 (centos6不可用)

partx -a /dev/sd#:重读新增分区(cenots6)
partx -d --nr M-N /dev/sd# :重读删除分区(cenots6)

相关文章

  • day19-磁盘分区及挂载

    《 磁盘管理 》 添加磁盘 1.磁盘基本分区 Fdisk 2.添加磁盘 ...

  • Linux实用工具-lvm(1)

    使用LVM管理磁盘 这里将介绍通过LVM管理、使用磁盘的方式。 简介-手动与LVM管理磁盘对比 平常我们都是直接使...

  • Linux虚拟机配置SFTP服务(备份服务器)

    步骤1 配置磁盘参考 Linux磁盘管理:LVM或Linux文件的 [磁盘管理:Linux新建数据盘] 章节。 步...

  • day 23 操作系统磁盘管理

    一.磁盘管理体系结构 二.磁盘物理结构信息 了解 三.磁盘阵列知识 lvm:逻辑卷管理 四.磁盘分区操作: ...

  • 磁盘显示未初始化修复

    首先我们在磁盘管理导入实验磁盘

  • day 20 了解磁盘

    磁盘管理体系 1.1、磁盘外观结构 分步了解 1.2、磁盘的外部结构 SSD磁盘 固态磁盘与传统磁盘优劣式对比 磁...

  • 2019-07-31

    day23 操作系统磁盘管理 课程介绍 1.磁盘管理体系结构2.磁盘外部结构信息3.磁盘内部结构信息4.多块磁盘整...

  • 从0到1学习网络安全 【Linux基础篇-Linux 磁盘管理】

    Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用三个命令为df、d...

  • Linux系统命令——磁盘管理命令

    Linux磁盘管理好坏直接关系到整个系统的性能问题。 在磁盘管理中,主要是查看磁盘使用量、磁盘分区、格式化、检验、...

  • linux命令

    1.文件、磁盘管理 2.用户、权限管理 3.系统管理 一、文件,磁盘管理命令 <1>查看文件信息:ls ★★★...

网友评论

      本文标题:磁盘管理

      本文链接:https://www.haomeiwen.com/subject/dzkmsftx.html