linux centos磁盘分区和挂载

文章发布于 2023-08-02

磁盘相关查看命令

查看磁盘列表
lsblk [options] [device]
选项与参数:
-d :仅列出磁盘本身,并不会列出该磁盘的分区数据
-f :同时列出该磁盘内的文件系统名称
-i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-m :同时输出该装置在 /dev 底下的权限数据 (rwx 的数据)
-p :列出该装置的完整文件名!而不是仅列出最后的名字而已。
-t :列出该磁盘装置的详细数据,包括磁盘队列机制、预读写的数据量大小等
[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sr0              11:0    1  4.4G  0 rom  

说明:
NAME:		就是装置的文件名啰!会省略 /dev 等前导目录!
MAJ:MIN:	其实核心认识的装置都是透过这两个代码来熟悉的!分别是主要:次要装置代码!
RM:			是否为可卸除装置 (removable device),如光盘、USB 磁盘等等
SIZE:		当然就是容量啰!
RO:			是否为只读装置的意思
TYPE:		是磁盘 (disk)、分区槽 (partition) 还是只读存储器 (rom) 等输出
MOUTPOINT:	就是前一章谈到的挂载点!

磁盘UUID参数

UUID 是全局单一标识符(universally unique identifier),是linux给所有装置给予一个独一无二的名称。这个标识符可以拿来作为挂载或者使用这个装置/文件系统使用。

列出uuid 的两个命令

lskid
or 
lsblk -f

lskid 和 lskld -f 两个命令输出的结果如下:

lskid

[root@localhost ~]# blkid
/dev/sda1: UUID="e5548780-4efe-4e5c-a3d2-e90efd45a2f1" TYPE="xfs" 
/dev/sda2: UUID="pgjMPn-LItH-xiL0-oA3E-5HiG-rPaU-CNNjH8" TYPE="LVM2_member" 
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="62d5cbe2-e8f7-4c67-bb63-e4727c4a560b" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="146e30ba-9b93-4a5b-8e69-fb8ffc6a7179" TYPE="swap" 
/dev/mapper/centos-home: UUID="c5fe153e-5752-4129-b47a-937f312fd5dd" TYPE="xfs" 

lsblk -f

[root@localhost ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         e5548780-4efe-4e5c-a3d2-e90efd45a2f1   /boot
└─sda2          LVM2_member                 pgjMPn-LItH-xiL0-oA3E-5HiG-rPaU-CNNjH8 
  ├─centos-root xfs                         62d5cbe2-e8f7-4c67-bb63-e4727c4a560b   /
  ├─centos-swap swap                        146e30ba-9b93-4a5b-8e69-fb8ffc6a7179   [SWAP]
  └─centos-home xfs                         c5fe153e-5752-4129-b47a-937f312fd5dd   /home
sr0             iso9660     CentOS 7 x86_64 2020-11-04-11-36-43-00   

如果磁盘没有UUID ,则代表没有挂载磁盘,可以格式化来生成UUID后进行挂载。例如sdb就没有格式化

[root@localhost ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         e5548780-4efe-4e5c-a3d2-e90efd45a2f1   /boot
└─sda2          LVM2_member                 pgjMPn-LItH-xiL0-oA3E-5HiG-rPaU-CNNjH8 
  ├─centos-root xfs                         62d5cbe2-e8f7-4c67-bb63-e4727c4a560b   /
  ├─centos-swap swap                        146e30ba-9b93-4a5b-8e69-fb8ffc6a7179   [SWAP]
  └─centos-home xfs                         c5fe153e-5752-4129-b47a-937f312fd5dd   /home
sdb                                                                                
sr0             iso9660     CentOS 7 x86_64 2020-11-04-11-36-43-00 

磁盘分区

第一步:查看需要挂载的磁盘名称

lsblk
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0    1G  0 disk  
sr0              11:0    1  4.4G  0 rom  

第二步:对sdb磁盘进行分区。按照下面的步骤来添加分区。

  • 1 add a new partition 添加新分区
  • 2 p primary (0 primary, 0 extended, 4 free) :p 分区类型
  • 3 分区号 (1-4,默认 1):1 添加的分区个数1-4
  • 4 起始 扇区 (2048-2097151,默认为 2048):【默认,回车】
  • 5 Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151) 【默认,回车】
  • 6 w write table to disk and exit: w 将表写入磁盘并退出
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x6f90bd1f 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# 

第三步:查看是否已分区

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0    1G  0 disk 
└─sdb1            8:17   0 1023M  0 part 
sr0              11:0    1  4.4G  0 rom  

磁盘格式化

mkfs.xfs [options] [分区]
options参数说明:
-b 分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
-i 设定inode的大小
-N 设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。
-c 在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢
-L 预设该分区的标签label
-j 建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了
-t 用来指定什么类型的文件系统,可以是ext2, ext3 也可以是 ext4.

将上面刚分区的磁盘,进行格式化操作。

[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65472 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=261888, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0


初始化成功之后,会生成一个唯一标识符。

sdb                                                                                
└─sdb1          ext4                        c91e068e-0d77-40ba-979f-427c705830dd 

磁盘挂载

一次性挂载

使用下面的目录挂载分区时,当电脑重启后,mount命令的挂载将会作废。

mount 分区 目录
//使用mount将sdb1分区挂载到/sdb_dir 目录
[root@localhost /]# mount /dev/sd
sda   sda1  sda2  sdb   sdb1  
[root@localhost /]# mount /dev/sdb1 /sdb_dir/

// 查看sdb1分区挂载情况,挂载成功
[root@localhost /]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0    1G  0 disk 
└─sdb1            8:17   0 1023M  0 part /sdb_dir
sr0              11:0    1  4.4G  0 rom  

现在重启一下服务器,再查看一下sdb1的分区挂载情况。

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0    1G  0 disk 
└─sdb1            8:17   0 1023M  0 part 
sr0              11:0    1  4.4G  0 rom  

重启后,查看分区情况。发现上面的代码中sdb1 分区没有被挂载。也就说明,mount命令挂载分区时,重启之后,之前的挂载将不复存在。每次开机都需要重新挂载一才行。如果不想麻烦,可以使用下面的永久挂载方法。

永久挂载

将挂载配置写入到/etc/fstab文件中。

vim /etc/fstab
[root@localhost ~]# vi /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun Nov 13 22:26:41 2022
#
# 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/centos-root /                       xfs     defaults        0 0
UUID=e5548780-4efe-4e5c-a3d2-e90efd45a2f1 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1 /                                     xfs     defaults        0 0

写入

//写入分区路径 或 分区UUID 都可以				    文件类型  默认 		   文件开始位置
/dev/sdb1 /                                      xfs     defaults        0 0

卸载

umount 目录

如果是是使用mount挂载,则使用umount进行卸载即可。如果是/etc/fstab文件里挂载,再进入文件删除对应的挂载点,重启即可。