目录

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:列出该磁盘设备的详细信息,包括磁盘阵列机制、预读写的数据量大小等

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

怎么看出windows是通过nfs还是cifs挂载_运维

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

lsblk默认输出的信息:

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

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

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

SIZE:容量

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

MOUNTPOINT:挂载点

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

怎么看出windows是通过nfs还是cifs挂载_运维_02

0.2  blkid列出设备的UUID等参数

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

怎么看出windows是通过nfs还是cifs挂载_分区表_03

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

怎么看出windows是通过nfs还是cifs挂载_分区表_04

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

parted devicename print

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

怎么看出windows是通过nfs还是cifs挂载_分区表_05

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

Disk:磁盘的总容量

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

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

msdos是基于MBR的

怎么看出windows是通过nfs还是cifs挂载_linux_06

这些是分区数据

1、磁盘分区:gdisk、fdisk

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

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

怎么看出windows是通过nfs还是cifs挂载_文件系统_07

 

1.1  fdisk

语法:

fdisk 设备名称

怎么看出windows是通过nfs还是cifs挂载_linux_08

 输入m查看命令

怎么看出windows是通过nfs还是cifs挂载_运维_09

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 不保存退出

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

怎么看出windows是通过nfs还是cifs挂载_文件系统_10

创建一个分区的各个流程

新增分区:n

怎么看出windows是通过nfs还是cifs挂载_linux_11

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

选择分区类型:p/e

怎么看出windows是通过nfs还是cifs挂载_linux_12

分区位置:1-4

怎么看出windows是通过nfs还是cifs挂载_服务器_13

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

怎么看出windows是通过nfs还是cifs挂载_linux_14

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

全部流程:

创建一个主分区

怎么看出windows是通过nfs还是cifs挂载_文件系统_15

创建一个扩展分区

怎么看出windows是通过nfs还是cifs挂载_linux_16

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

怎么看出windows是通过nfs还是cifs挂载_linux_17

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

怎么看出windows是通过nfs还是cifs挂载_文件系统_18

 保存退出

怎么看出windows是通过nfs还是cifs挂载_分区表_19

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

怎么看出windows是通过nfs还是cifs挂载_分区表_20

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)是一样的

怎么看出windows是通过nfs还是cifs挂载_服务器_21

怎么看出windows是通过nfs还是cifs挂载_分区表_22

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

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:后面可以接一些挂载时额外加上的参数

怎么看出windows是通过nfs还是cifs挂载_运维_23

怎么看出windows是通过nfs还是cifs挂载_文件系统_24

怎么看出windows是通过nfs还是cifs挂载_服务器_25

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

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

3.1.2 手动取消挂载:umount

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

怎么看出windows是通过nfs还是cifs挂载_分区表_26

怎么看出windows是通过nfs还是cifs挂载_分区表_27

3.2  自动挂载

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

系统挂载的一些限制:

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

/etc/fstab文件内容:

怎么看出windows是通过nfs还是cifs挂载_linux_28

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

这个文件共有六部分

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

第二栏:挂载点(目录)

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

第四栏:文件系统参数

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

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

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

怎么看出windows是通过nfs还是cifs挂载_分区表_29

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

怎么看出windows是通过nfs还是cifs挂载_服务器_30

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

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

怎么看出windows是通过nfs还是cifs挂载_服务器_31

解决方案:

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

怎么看出windows是通过nfs还是cifs挂载_文件系统_32

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

怎么看出windows是通过nfs还是cifs挂载_linux_33

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

怎么看出windows是通过nfs还是cifs挂载_运维_34

进入紧急模式输入root密码

怎么看出windows是通过nfs还是cifs挂载_分区表_35

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

chroot  /sysroot切换文件系统

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

怎么看出windows是通过nfs还是cifs挂载_分区表_36

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