从0开始云平台(2.8) --- 硬盘分区、格式化与挂载

sin 2022-12-08 PM 1511℃ 0条

介绍

当我们买回来了一个16G的U盘(其他3.5英寸、2.5英寸硬盘,SSD、NVME同理)。我们需要经过 分区、格式化、挂载多个步骤才能被我们使用。下面我们一一分解。


以上图片来自于 Storage and Hard Drives 101

分区

windows分区工具很多,就不多说了,比如 DiskGenius简单易用。

这里写一下linux下分区工具的使用

前导知识 1000还是1024

我们常用的4G内存,指的是什么呢? 一般指我们的内存可以存储这么多字节

4(Gb) * 1024(Mb) * 1024 (Kb) * 1024 (Byte) = 4294967296(Byte)

我们常说的16G硬盘,指的是什么呢?

硬盘厂商认为

16(Gb) * 1000(Mb) * 1000 (Kb) * 1000(Byte) = 16000000000(Byte)

有些操作系统认为 硬盘是14.9(Gb)

16000000000 / 1024 / 1024/ 1024 = 14.9(Gb)

到底是1000还是1024,不同操作系统不一样,但是硬盘厂家是统一的 1000!

前导知识 扇区

扇区(sector)原来是机械磁盘特有的概念,这个概念被其他类型磁盘也继承了,表示512字节为单位的一个区块。

比如我们有20G的磁盘,我们就有41943040个扇区

21474836480 / 512 = 41943040 (个)

我们第一个扇区是 0 号 扇区,最后一个是 41943039 号 扇区。

前导知识 MBR vs GPT

这里只说一下 MBR,并且同时特指 最经典的Intel CPU识别的MBR。

我们看一下。所谓的 主引导记录 就是第一个扇区(0号扇区)。

从第一个扇区的 446字节 偏移处开始,一共64字节(每个分区16字节),记录了最多4个分区。

分区 parted
sudo parted /dev/sda mklabel msdos
sudo parted /dev/sda mkpart primary 0% 100%
sudo partprobe
  • 第一条命令 初始化MBR扇区
  • 第二条命令 创建一个主分区,从开始到结束,这里开始是第2048个扇区。
  • 第三条命令 重新加载分区表,使系统能识别(有些系统不需要这条命令)
TIPS

有些同学会问,那从第一个扇区到第2048个扇区之间的空间怎么办呢?这是个好问题。

可以算一下,这个2048个扇区其实就是1Mb。

这是由于现在磁盘都比较大,不在乎这1M大小,所以文件系统都按照1M对齐。

一般这一部分扇区,不属于分区。一些操作系统、病毒、Bootloader或者杀毒软件 会在这些扇区上写入一些内容。这将导致,即使格式化了整个分区,甚至重新分区,重装系统也无法清除这些扇区上的内容。

比如在30年前 DOS年代,Michelangelo 病毒会把MBR移动到第7号扇区,并把0号扇区 替换成病毒,达到一开机,就中毒的效果。

更多阅读

查看分区

根据定义,我们可以查看用如下代码查看分区

with open("/dev/sda", "rb") as f:
    f.seek(446)
    for i in range(1, 5):
        print("分区表%s: "%i, end=" ")
        for j in range(0, 16):
            print("%02x"%f.read(1)[0], end=" ")
        print()

根据定义

分区开始是: 0x 00 00 08 00 = 2048
分区总扇区数量: 0x 02 7f f8 00 = 41940992

由命令查看

完美符合!

格式化

分完区之后, 分别格式化成不同的文件系统

sudo mkfs.xfs /dev/sda1
sudo mkfs.ext4 /dev/sda1
sudo mkfs.ntfs /dev/sda1
sudo mkfs.exfat /dev/sda1

不同文件系统有不同的组织形式,性能特性。更具不同需求选择不同文件系统。

挂载

挂载文件系统到某一个目录

sudo mount /dev/sda1 /mnt

这时候,我们就可以使用这个硬盘空间了。

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~