我是靠谱客的博主 闪闪缘分,最近开发中收集的这篇文章主要介绍磁盘管理讲解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

磁盘管理

物理设备:硬盘

  • 硬盘在Linux的名字–>/dev/sd*

Windows:

  • 盘符:C D E F;
  • 一般来说C盘就是系统盘,D盘就是文件盘
  • SSD:通常用作系统盘
  • 机械硬盘:用于存储盘

Linux:

  • 硬盘规格、种类,通过udev命名方式命名
  • Linux硬件设备文件都是存放在/dev/下
  • 软驱:目前都基本淘汰了:/dev/fd[0-1]
  • 光驱:就快淘汰,/dev/sr0–> /dev/cdrom
  • 有些公司使用的共享打印室,

重点讲解的设备是:硬盘设备

  • IDE设备:/dev/hd[a-d],目前公司都很少用这种类型的硬盘
  • scsi/sata/u盘设备:目前主流使用的;
    • /dev/sd[a-p]
  • 如果是云上面的硬盘设备:一般是使用虚拟硬盘
    • /dec/va[a-?]–>virtual虚拟的

Linux系统启动的时候,是如何识别硬盘顺序的?

  • sda:–>这里就有sda1,第一块识别的硬盘的分区编号为1
  • vda:–>同理是第一块虚拟硬盘的分区编号为1

硬盘的讲解:

  • 硬盘结构;
  • 硬盘臂
  • 扇区
  • 主引导分区;

硬盘:

  • 机械硬盘:有磁盘臂;
    • 有扇区的说法;每个扇区512字节;
    • 1byte=8bit
  • 固态硬盘:读写速度相对机械硬盘来说要快

SAS-SATA-SSD-SCSI-IDE硬盘讲解

常见磁盘类型:

  • SAS硬盘 — 服务器 Dell R730 740 300G = 8个槽
  • SATA硬盘
  • SSD硬盘
  • SCSI硬盘
  • SAS(串行连接SCSI接口)
    • SAS(Serial Attached SCSI),串行连接SCSI接口,串行连接小型计算机系统接口。
    • SAS是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。
    • SAS的接口技术可以向下兼容SATA。
  • IDE硬盘

磁盘尺寸:

此前主流的桌面磁盘和服务器磁盘都是采用3.5英寸设计,而SAS硬盘除了具有传统的3.5英寸规格之外,还采用了2.5英寸的缩小版,这样可以在机架式服务器有限的空间内安装更多的磁盘以扩充存储系统的容量,也能够为其他配件腾出更大的空间,以便通风散热,在2U高度内使用8个2.5英寸的SAS硬盘位已经成为大多数服务器厂商的选择。

  • 3.5英寸设计
  • 2.5英寸设计

为什么并口没有窗口快?

串口形容一下就是 一条车道,而并口就是有8个车道。同一时刻能传送8位(一个字节)数据。

但是并不是并口快,由于8位通道之间的互相干扰。传输受速度就受到了限制。当传输出错时,要同时重新传8个位的数据,而且传输速度越快,干扰越严重。这是硬伤,这样速度就无法提升上来。

串口没有干扰,传输出错后重发一位就可以了。而且串口传输的时钟频率要比并口高。

硬盘的最小存储单位:sector山丘区,每个扇区存储是512字节

计算机系统一次性读取多个扇区就成为一个block

硬盘的block和inode

文件系统:

  • block:存储文件的实际内容
  • inode:村塾文件的权限以及属性
  • Superblock:记录文件系统的整体信息,包括inode与block的总量、使用大小、剩余大小, 以及文件系统的格式与相关信息等;

分区:

有主分区和扩展分区的说法:

  • 主分区:最多只有4个主分区,如果还需要增加分区,就需要扩展分区支持

  • 主分区:可以直接安装系统、也可以装多个系统;

    • 只要电脑的性能能够承载起来,还是可以安装双系统;
  • 扩展分区:当主分区不够用的时候,需要扩展分区,

    • 扩展分区有且只有1个;
    • 严格来说,扩展分区不算是真正的分区,不能直接使用
  • 逻辑分区:

    • 逻辑分区是基于“扩展分区之上的建立的,
    • 和主分区的功能是一样的;一样可以装系统,存文件等等;
    • 逻辑分区的分区编号是从5开始

分区的规划:

  • 主+主+主+扩展
  • 主+主+扩展
  • 主+扩展
  • 扩展分区是为了形成逻辑分区

/dev/sdb6:这个如何理解?

  • 开机系统识别的第二个scsi硬盘,第二个逻辑分区;

问题:如果需要6个分区:

排列出来:

​ sdb 1 2 3 +sdb 5 6 7

文件系统

问题:为什么主分区和逻辑分区可以用,而扩展分区是不能用的?

文件系统:问什么文件命名不能存在特殊字符?

  • 为什么Linux具备/etc/ /dev/等等的初始形态的目录?

文件系统是系统的规则,它创立系统的“法律”;如果你要用,那么你就得遵循;不然你就自己搞一个;

文件系统类型:

Windows:NTFS文件系统

Linux文件系统

  • ext3—>默认是5版本的系统;
  • ext4–>默认是6版本的系统;
  • xfs:–>默认的是7版本的系统;

Linux的文件系统是承接的;

  • xfs–>接纳ext4–>接纳ext3
  • 支持的最大的存储空间
  • 也可以增大了读写效率
  • 系统奔溃的时候,处理残留文件的采集效率;
#blkid能够查看系统类型和uuid
#type:就是指定了系统类型
[root@slave26 ~]# blkid
/dev/nvme0n1: PTUUID="dce4ad1b" PTTYPE="dos"
/dev/nvme0n1p1: UUID="a32a0a43-4c06-4b72-a73d-16e270878758" TYPE="xfs" PARTUUID="dce4ad1b-01"
/dev/nvme0n1p2: UUID="d0cefcaf-9f38-49a5-8ad4-14b960ffba8a" TYPE="swap" PARTUUID="dce4ad1b-02"
/dev/nvme0n1p3: UUID="a52f93be-475e-45a2-9624-7f3dd47b0a22" TYPE="xfs" PARTUUID="dce4ad1b-03"
/dev/sr0: UUID="2019-04-04-08-40-23-00" LABEL="RHEL-8-0-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="0da1aba4" PTTYPE="dos"

Linux中的/etc/目录在根目录下;

我们学习的系统:自动分区–>至少准备三个分区

  • /:根分区
  • /boot:启动分区,存放启动引导文件的
  • swap:交换分区

硬件的使用步骤

硬件–>使用—>挂载;

Linux中如何实现?

分区—>格式化—>挂载—>最后才能识别使用;

第一步:分区:

分区使用的到的命令

  • fdisk命令:比较通通,比较简单,交互式
  • parted:有难度,纯命令操作,没有提示;

在实现的过程中:出现了问题?

  • 问题总结手册–先查
  • 没有现成的文件手册–>杜绝百度–>找开发团队,确认功能|电话找厂商解决

fdisk命令

作用:交互是分区命令

语法:fdisk+硬盘路径

交互命令操作:

  • b 编辑bsd disklabel;
  • c 切换dos兼容性标志;
  • d 删除一个分区;
  • g 创建一个新的空GPT分区表;
  • G 创建一个IRIX(SGI)分区表;
  • l 列出已知的分区类型;
  • m 打印帮助菜单;
  • n 添加一个新分区;
  • o 创建一个新空DOS分区表;
  • p 打印分区表信息;
  • q 退出而不保存更改;
  • s 创建一个新的空的Sun磁盘标签;
  • t 更改分区的系统ID;
  • u 更改显示/输入单位;
  • v 验证分区表;
  • w 将分区表写入磁盘并退出;
  • x 额外功能。
[root@master20 ~]# fdisk /dev/sdb 
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xa9348043 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p
primary (0 primary, 0 extended, 4 free)
e
extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w

parted命令

作用:支持gpt格式的磁盘分区

交互式命令:

  • print:打印出来
  • mktable:修改标签模式
  • quit:退出

直接上实验

#普通的是dos格式
[root@master20 ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
#这里就是指定了磁盘标签类型
磁盘标识符:0xa9348043
.........
#使用parted命令
[root@master20 ~]# parted
/dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable gpt
#修改磁盘的标签类型为gpt
警告: 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? yes
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number
Start
End
Size
File system
Name
标志
(parted) mkpart
#创建分区
分区名称?
[]? sdb1
#新建的分区名
文件系统类型?
[ext2]? ext4
#文件格式
起始点?
起始点? 1
结束点? 4
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number
Start
End
Size
File system
Name
标志
1
1049kB
4194kB
3146kB
ext4
sdb1
[root@master20 ~]# parted -l /dev/sdb1 | more
警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number
Start
End
Size
Type
File system
标志
1
1049kB
1075MB
1074MB
primary
xfs
启动
2
1075MB
21.5GB
20.4GB
primary
lvm
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
#看见分区成功
Disk Flags:
Number
Start
End
Size
File system
Name
标志
1
1049kB
4194kB
3146kB
ext4
sdb1

第二步:格式化;

格式化就是创建文件系统

mkfs.ext4命令

作用:格式化分区为ext4文件系统

语法:mkfs.ext4+分区

[root@master20 ~]# mkfs.ext4 /dev/sdb1 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

第三步:挂载

三部曲:分区-格式化-挂载

CentOS7和8的文件系统都是XFS;

mount命令讲解

作用:主要用于挂载;

如果硬盘想要使用,必须经过挂载,所以就会用到mount命令

语法:mount +【选项】+设备目录+挂载点

选项:

  • o:重新指定挂载的读写模式;
  • -t:指定的是什么文件系统
    • ntfg-3g:移动硬盘
    • iso9660:指定iso镜像
    • fat32:U盘
    • nfs:文件共享

深入讲解/etc/fstab文件

  • 这个文件是直接影响系统开机的,如果修改错误直接导致系统无法开机
[root@master20 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Fri Apr 30 12:15:30 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root
/
xfs
defaults
0 0
UUID=78fc058e-978b-4f84-83be-a052635ccbec /boot
xfs
defaults
0 0
/dev/mapper/rhel-swap
swap
swap
defaults
0 0
/dev/sdb1	/data/	ext4	defaults	0 0

规则讲解

  • /dev/sdb1:需要挂载的分区设备
  • /data/:挂载点
  • ext4:文件系统
  • default:文件系统的参数
    • async/sync:设置是否同步方式运行,默认为async
    • auto/noauto:运行mount -a的时候,是否被自动挂碍,默认是自动挂载的
    • rw/ro:可读或者可写的方式
    • exec/noexe:是否能够执行执行操作
    • user/nouser:是否允许用户使用mount -a命令
    • suid/nosuid:是否允许suid的存在
    • usrquota:这个是支持磁盘配额的选项;重点
  • 0:是否备份,0位不备份,1为每天进行备份操作
  • 0:是否校验

最后

以上就是闪闪缘分为你收集整理的磁盘管理讲解的全部内容,希望文章能够帮你解决磁盘管理讲解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部