目录

0、观察磁盘分区状态:lsblk、blkid、parted

0.1  lsblk列出系统上的所有磁盘列表

0.2  blkid列出设备的UUID等参数

0.3  parted列出磁盘的分区表类型与分区信息

1、磁盘分区:gdisk、fdisk

1.1  fdisk

2、磁盘格式化(创建文件系统):mkfs

3、文件系统挂载

3.1.1  手动挂载:mount

3.1.2 手动取消挂载:umount

 3.2  自动挂载

3.3 重启自动挂载失败解决问题


如果我们想要在系统里面新增一块磁盘时,应该有哪些操作需要做:

  1. 对磁盘进行划分,以建立可用的硬盘分区
  2. 对该硬盘分区进行格式化(format),以建立系统可用的文件系统
  3. 若想要仔细一点,则可对刚刚建立好的文件系统进行检验
  4. 在Linux系统下,需要建立挂载点(亦即是目录),并将它挂载上来

0、观察磁盘分区状态:lsblk、blkid、parted

目前磁盘分区主要有MBR以及GPT两种格式,这两种格式所使用的的分区工具不太一样,因此我们需要去知道目前系统有哪些磁盘以及分区方式等等信息

0.1  lsblk列出系统上的所有磁盘列表

可以把lsblk看做 list block device 的缩写,也就是列出所有存储设备的意思

lsblk【-dfimpt】【device】

选项与参数:

-d:仅列出磁盘本身,并不列出该磁盘的分区数据

-f:同时列出该磁盘内的文件系统名称

-i:使用ASCII的字符输出,不要使用复杂的编码(在某些环境下很有用)

-m:同时输出该设备在/dev下面的权限信息(rwx的数据)

-p:列出该设备的完整文件名,而不是列出最后的名字而已

-t:列出该磁盘设备的详细信息,包括磁盘阵列机制、预读写的数据量大小等

列出本系统下所有的磁盘与磁盘内的分区信息:

f1ceee74e4184050bff59b6a3a62dd35.png

目前系统主要有个sr0以及一个nvme0n1设备 

lsblk默认输出的信息:

NAME:设备的文件名,会省略/dev等前导目录

MAJ:MIN:分别为主要与次要设备代码(内核识别的设备就是通过这两个代码实现的)

RM:是否为可拆卸设备(removable device),如光盘、USB磁盘等

SIZE:容量

TYPE:是磁盘(disk)、分区(partition)还是只读存储器(rom)等输出

MOUNTPOINT:挂载点

列出/dev/nvme0n1设备内所有数据的完整文件名:

0838843d8b2c44ba9b22f1c9e053df0b.png

0.2  blkid列出设备的UUID等参数

UUID时全局唯一标识符(universally unique identifier),Linux会将系统内所有的设备都给予一个独一无二的标识符,这个标识符可以拿来挂载或是使用这个设备或文件系统

1aa90468924348adad6f8d569937bb33.png

补充:lsblk -f也可列出设备的UUID

a114c27dc08e42269f1537df749cdd8d.png

0.3  parted列出磁盘的分区表类型与分区信息

parted devicename print

列出/dev/nvme0n1磁盘的相关信息

99d0c71442034f498d84e4906296b929.png

Model:磁盘的模块名称(厂商)

Disk:磁盘的总容量

Sector size(logical/physical):磁盘的每个逻辑/物理扇区容量

Partition Table:分区表格式(MBR/GPT)

msdos是基于MBR的

13b3ad4ddbcb4f4db45bebe30b5a6ff4.png

这些是分区数据

1、磁盘分区:gdisk、fdisk

MBR分区表请使用fdisk分区,GPT分区表请使用gdisk分区

为讲解fdisk命令,新建了两块磁盘来供我们使用(sda与nvme0n2)7ef9a0a535be4db5b7ea3dc22e140f44.png 

1.1  fdisk

语法:

fdisk 设备名称

ed978d66382f4154b9b004abd5086caa.png

 输入m查看命令

d36185fbbeea4bd5bc01244c9944e021.png

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

介绍其中常用的目录:
   d   delete a partition 删除一个磁盘分区
   n   add a new partition 新增一个磁盘分区
   p   print the partition table 在屏幕上显示分区表
   w   write table to disk and exit 保存退出
   q   quit without saving changes 不保存退出

先查看一下我们的分区表(此时是没有分区的)

3cc3dcaea68f44859cb1b65013ca7e79.png

创建一个分区的各个流程

新增分区:n

a5bed697de8b453f9a45d0745b026470.png

  p   primary (0 primary, 0 extended, 4 free) 主分区
  e   extended (container for logical partitions) 扩展分区

选择分区类型:p/e

646f7362c7d847bf9ea526cf17146958.png

分区位置:1-4

75693de1d6f54e2a964e2d434be3b9cb.png

选择起始扇区位置和结束扇区位置

7a2971f2a649406b9c4f5c3d95bdc3dd.png

结束扇区的位置除了选择数字外还可以使用+/-来选择容量大小,因为通过512B*扇区数量来计算比较麻烦

全部流程:

创建一个主分区

6baa77c332d24433b2313d0deeaf4045.png

创建一个扩展分区

8b70a168956648caabfba19b5ad8edee.png

创建一个逻辑分区(逻辑分区是位于扩展分区内的)

b4e66c7401564b6998d21a5c1ccfd519.png

 此时我们来查看一下分区表

7877d03596084fc688fe9ff48186ded6.png

 保存退出

e15dff7b1aea45bf878435bf528cd7ac.png

 查看路径下的sda磁盘(1-4是给主分区和逻辑分区使用的)

df8b778c973f4dcdb3e69037a2c1da85.png

1.2  fdisk

语法:gdisk 设备名称

gdisk跟fdisk使用方法几乎一样,这里就不做多介绍了

补充:使用partprobe更新Linux内核的分区表信息,因为有时候Linux还在使用磁盘,为了防止和系统出问题,所以分区表有时候没有被更新,这个时候有两种方法来处理:一种为重新启动,另一种就是利用partprobe命令

partprobe【-s】加上选项-s可以把信息打印到屏幕上

2、磁盘格式化(创建文件系统):mkfs

mkfs命令有一个-t选项可以供我们指定要构建的文件系统的类型

-t, --type type
           Specify the type of filesystem to be built. If not specified, the default filesystem type (currently ext2) is used

mkfs其实是一个综合命令,当我们使用mkfs -t xfs时,他就会去找mkfs.xfs相关的参数给我们使用;当我们使用mkfs -t ext4时,他就去找mkfs.ext4的相关参数,所以mkfs -t xfs(mkfs -t ext4)与使用mkfs.xfs(mkfs.ext4)是一样的

3cd5e25e70584b1c8d286efae2ecc9e3.png

fb99ab6b629c43ad9b4c31e074cec462.png

使用不同的文件系统,它输出的效果是不同的

3、文件系统挂载

挂载点是一个目录,这个目录是进入磁盘分区(其实是文件系统)的入口

在挂载前,你需要确认一下:

  • 单一文件系统不应该被重复挂载在不同的挂载点(目录)中
  • 单一目录不应该重复挂载多个文件系统
  • 要作为挂载点的目录,理论上应该都是空目录才行

如果用来挂载的目录不为空,那么挂载了文件系统之后,原目录下的东西就会暂时地消失

3.1.1  手动挂载:mount

mount  -a

mount  -l

mount 【-t 文件系统】LABEL=‘ ’  挂载点

mount 【-t 文件系统】UUID=‘ ’  挂载点

mount 【-t 文件系统】设备文件名  挂载点

选项与参数:

-a:依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来

-l:单纯的输入mount会显示目前挂载的信息,加上-l可增列Label名称

-t:可以加上文件系统种类来指定欲挂载的类型

-n:在默认情况下,系统会将实际挂载的情况即时写入/etc/mtab中,所以可使用-n来避免写入

-o:后面可以接一些挂载时额外加上的参数

ef99f98064e24eb293d74fe4190d3ca8.png

25bef70d57264446b0a37dd84168ec3f.png

db3e56490d86407393ce40916cdfdf4f.png

这个时候,我们就可以进入挂载点来使用磁盘 

取消挂载后,在磁盘中创建的文件还会存在于磁盘,但挂载点下已经无法找到了,因为取消了挂载就取消了进入此磁盘的入口

3.1.2 手动取消挂载:umount

umount 设备名/文件系统/挂载点

c4cda653febd4172b6132a7eea210e9d.png

4535a1d750d540a981ccd4219f5e4409.png

3.2  自动挂载

如何开机时自动把我们的文件挂载好,直接到/etc/fstab中去修改就行

系统挂载的一些限制:

  • 根目录时必须挂载的,而且优先级一定要先于其他挂载点被挂载进来
  • 其他挂载点必须为已建立的目录,可任意指定,但一定要遵循必须的系统目录架构原则(FHS)
  • 所有挂载点在同一时间之内只能挂载一次
  • 所有硬盘分区在同一时间之内挂载一次
  • 如若进行卸载,你必须先将工作目录已到挂载点(及其子目录)之外

/etc/fstab文件内容:

dbe1559151f146618f1529a8ffcb2343.png

这个文件就是我们利用mount命令进行挂载时,将所有选项与参数写入的文件

这个文件共有六部分

第一栏:磁盘文件名/UUID/LABEL name

第二栏:挂载点(目录)

第三栏:磁盘分区的文件系统

第四栏:文件系统参数

第五栏:是否能被dump备份命令作用

第六栏:是否以fsck检验扇区

修改文件内容使之能够开机自动挂载

b75e80a935f5449dbb405645eb19d28a.png

保存退出后,我们重启看看

2716b876fa5f4ffda2d1d25f99344531.png

3.3 重启自动挂载失败解决问题

当我们的磁盘出现问题(此处把磁盘的分区删除了)时,重启时挂载不上怎么办

3659044a4d804962a3e026f8b720b132.png

解决方案:

在启动界面选择第一项,并按e进入编辑

929cc40b20fd40c19d70fb6c68d05f5c.png

进入此界面后,在linux开头到quiet结尾的句子最后加上rd.break

ed057e4aa351483887e492205a9c4ba7.png

加入后按ctrl+x继续启动,进入紧急模式

5427f62827c04b9698b5fefe1e5a830c.png

进入紧急模式输入root密码

e837832ba53f45409ffcb41059f79341.png

输入mount -n -o remount,rw /sysroot重新挂载根目录

chroot  /sysroot切换文件系统

vim /etc/fstab编辑文件,将挂载错误的文件系统删除或注销(sda1的那一行删除)

45d3cc5c616e474ba0ef2e1bca53a4a5.png

最后两个exit退出根文件系统和紧急模式 等待系统启动

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐