Linux磁盘管理

Linux系统安装过程中的步骤之一就是磁盘分区、格式化和挂载。可采用Disk Druid、RAID和LVM等方式进行分区。除此之外,在Linux系统中还有fdisk、cfdisk、parted等分区工具用于磁盘分区;使用mkfs指令进行磁盘格式化操作;使用mount命令挂载。
通常在进行磁盘挂载之前会对一块或者多块硬盘进行磁盘划分以及格式化,在对磁盘进行格式化之前需要了解磁盘文件的具体类型。在Linux中,常用的文件类型有XFS、Swap和Ext这三种。  

XFS文件系统

XFS文件系统是存放文件和目录数据的分区,属于高性能的日志型文件系统,是CentOS 7系统中默认使用的文件系统。 

Swap文件系统

Swap文件系统是Linux系统建立的交换分区,即存放临时数据的场所,交换分区相当于虚拟内存,能够在一定程度上缓解内存不足的问题,一般建议将交换分区的大小设置为物理内存的1.5~2倍。

Ext文件系统

Ext(Linux extended file system),即Linux扩展文件系统,分为Ext2、Ext3、Ext4。其中,Ext2称为索引式文件系统,Ext3/4称为日志式文件系统。
 

磁盘分区

(1)fdisk

在进行磁盘分区之前,可使用fdisk –l命令查看磁盘分布及使用情况。

fdisk -l

fdisk语法:

fdisk [必要参数] [选择参数]

必要参数:

  • -l:列出素所有分区表;

  • -u:与-l搭配使用,显示分区数目。

菜单操作说明:

  • m:显示菜单和帮助信息;

  • a:活动分区标记/引导分区;

  • d:删除分区;

  • l:显示分区类型;

  • n:新建分区;

  • p:显示分区信息;

  • q:退出不保存;

  • t:设置分区号;

  • w:保存修改;

  • x:扩展应用,高级功能。

(2)parted

也可使用parted进行磁盘分区,具体语法如下。

parted [参数] [设备] 

常用参数:

  • -i:交互式模式;

  • -s:脚本模式,不提示用户;

  • -l:列出所有块设备上的分区布局;

  • -h:显示帮助信息。

例如,列出所有块设备上的分区布局

parted -l 

磁盘格式化

磁盘格式是指将分区格式化成不同的文件系统。

使用命令mkfs.+Tab+Tab查看文件类型。

mkfs.

Linux mkfs命令用于在特定的分区上建立Linux文件系统。mkfs语法为:

mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

参数说明:

  • device:预备检查的硬盘分区,例如:/dev/sda1;

  • -V:详细显示模式;

  • -t:给定文件系统的型式,Linux的默认值为Ext2;

  • -c:在制做档案系统前,检查该分区是否有坏道;

  • block:给定块的大小;

  • -L:建立lable。

例如,下列指令表示在/dev/sdb1上建一个ext4的文件系统,并且将过程详细列出来:

mkfs -V -t ext4 –c /dev/sdb1

磁盘的挂载

(1)挂载点目录

将磁盘切到根目录,media和mnt这两个目录叫做挂载点目录。除此之外,也可以新建一个目录作为一个挂载点目录。

(2)临时挂载

将指定的一个目录作为挂载点目录时,如果挂载点的目录有文件,那么文件会被隐藏。因此当我们需要挂载目录时,最好新建一个空文件夹来作为挂载点目录(重启后失效)。具体有以下步骤:

① 首先在根下创建一个test目录用于测试;

② 使用mount命令挂载;

(3)永久挂载

使用永久挂载,就意味着它开机会自动挂载。

① 使用blkid命令查看对应分区的UUID,UUID唯一标识每一个分区,防止错误的挂载;

② 编辑/etc/fstab文件,将挂载信息填入配置文件中;

③ 使用mount -a命令生效。

blkid命令详解

在Linux下可以使用blkid命令对查询设备上所采用文件系统的类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。

常用语法:

blkid -L | -Ublkid [-c ] [-ghlLv] [-o] [-s ][-t ] -[w ] [ ...]blkid -p [-s ] [-O ] [-S ][-o] ...blkid -i [-s ] [-o] ...

选项参数解析:

  • -c :指定cache文件;

  • -h:显示帮助信息;

  • -o :指定输出格式;

  • -s :显示指定信息,默认显示所有信息;

  • -v:显示版本信息。

查看磁盘可用空间

(1)df

Linux中df命令的功能是用来检查Linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。其语法格式为:

df [选项] [文件]

df命令显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。

必要参数:

  • -a:全部文件系统列表

  • -h:方便阅读方式显示

  • -H:等于“-h”,但是计算式,1K=1000,而不是1K=1024

  • -i:显示inode信息

  • -k:区块为1024字节

  • -l:只显示本地文件系统

  • -m:区块为1048576字节

  • –no-sync:忽略 sync 命令

  • -P:输出格式为POSIX

  • –sync:在取得磁盘信息前,先执行sync命令

  • -T:文件系统类型

可选参数:

  • –block-size=:指定区块大小;

  • -t:只显示选定文件系统的磁盘信息;

  • -x:不显示选定文件系统的磁盘信息;

  • –help:显示帮助信息;

  • –version:显示版本信息。

例如,

[root@xxx ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
devtmpfs                  4051608       0   4051608   0% /dev
tmpfs                     4067612       0   4067612   0% /dev/shm
tmpfs                     4067612    9192   4058420   1% /run
tmpfs                     4067612       0   4067612   0% /sys/fs/cgroup
/dev/mapper/centos-root  95373824 1878260  93495564   2% /
/dev/mapper/centos-home    508580   25824    482756   6% /home
/dev/sda1                  201380  124100     77280  62% /boot
tmpfs                      813520       0    813520   0% /run/user/0

说明:

df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3、4列分别表示已用的和可用的数据块数目(缺省的每个分区都留了少量空间供系统管理员使用,即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间);第5列“已用%” 表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间;最后一列表示文件系统的挂载点(Mounted on)。

(2)du

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看。具体命令语法如下:

du [选项][文件]

命令参数:

  • -a或-all:显示目录中个别文件的大小。

  • -b或-bytes:显示目录或文件大小时,以byte为单位。

  • -c或–total:除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

  • -k或–kilobytes:以KB(1024bytes)为单位输出。

  • -m或–megabytes:以MB为单位输出。

  • -s或–summarize:仅显示总计,只列出最后加总的值。

  • -h或–human-readable:以K,M,G为单位,提高信息的可读性。

  • -x或–one-file-xystem:以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

  • -L或–dereference:显示选项中所指定符号链接的源文件大小。

  • -S或–separate-dirs:显示个别目录的大小时,并不含其子目录的大小。

  • -X或–exclude-from=:在指定目录或文件。

  • –exclude=:略过指定的目录或文件。

  • -D或–dereference-args:显示指定符号链接的源文件大小。

  • -H或—si:与-h参数相同,但是K,M,G是以1000为换算单位。

  • -l或–count-links:重复计算硬件链接的文件。

fdisk分区挂载实践

(1) 查看磁盘分区情况

[root@xxx ~]# fdisk -l
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000c4000

Device     Boot  Start       End   Sectors  Size Id Type
/dev/sda1  *      2048    411647    409600  200M 83 Linux
/dev/sda2       411648 209070079 208658432 99.5G 8e Linux LVM


Disk /dev/mapper/centos-root: 91 GiB, 97710505984 bytes, 190840832 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-home: 500 MiB, 524288000 bytes, 1024000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

(2)查看块设备

[root@xxx ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0  200M  0 part /boot
└─sda2            8:2    0 99.5G  0 part 
  ├─centos-root 253:0    0   91G  0 lvm  /
  ├─centos-swap 253:1    0    8G  0 lvm  [SWAP]
  └─centos-home 253:2    0  500M  0 lvm  /home
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  7.7G  0 rom  

(3) 使用fidsk命令进行分区

[root@xxx ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xf79c6a8b.

Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf79c6a8b

Command (m for help): 

(4)出现等待输入命令,我们可以使用m查看选项

Command (m for help): m

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

(5)常用参数解释

m 打印菜单

p 打印分区

n 新建分区

d 删除分区

w 保存退出

(6)新建分区

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

依次输入p,编号,回车,设置磁盘大小,设置完成后可以进行查看,然后进行保存。

Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +10G

Created a new partition 1 of type 'Linux' and of size 10 GiB.

Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x10197e56

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 20973567 20971520  10G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

(7)可格式化类型及格式化

mkfs. +tab+tab查看可格式化类型

[root@xxx ~]# mkfs.
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs 

格式化sdb1

[root@xxx ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: b29b5f71-7f3c-4f5d-82ec-b66b7ba85afe
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

(8)查看格式化后磁盘信息

[root@xxx ~]# ll /dev/sdb1
brw-rw----. 1 root disk 8, 17 Jun 12 18:48 /dev/sdb1

(9)临时挂载创建

创建挂载点,使用mount命令进行挂载,查看挂在情况

[root@xxx ~]# mkdir /test
[root@xxx ~]# mount /dev/sdb1 /test
[root@xxx ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs                   tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs                   tmpfs     3.9G  9.0M  3.9G   1% /run
tmpfs                   tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        91G  1.8G   90G   2% /
/dev/mapper/centos-home xfs       497M   26M  472M   6% /home
/dev/sda1               xfs       197M  122M   76M  62% /boot
tmpfs                   tmpfs     795M     0  795M   0% /run/user/0
/dev/sdb1               ext4      9.8G   37M  9.3G   1% /test

(10)开机自动挂载

uudi方式

查看磁盘uuid,写入/etc/fstab

[root@xxx ~]# blkid
/dev/sr0: UUID="2020-06-08-22-08-25-00" LABEL="CentOS-8-2-2004-x86_64-dvd" TYPE="iso9660" PTUUID="545ce9a4" PTTYPE="dos"
/dev/sdb1: UUID="b29b5f71-7f3c-4f5d-82ec-b66b7ba85afe" TYPE="ext4" PARTUUID="10197e56-01"
/dev/sda1: UUID="84a8d57f-d656-4b7f-8bb0-3ca385cd6b04" TYPE="xfs" PARTUUID="000c4000-01"
/dev/sda2: UUID="9Pa9EI-MEQ1-mXYv-PO2e-bmh8-zY04-ydncVa" TYPE="LVM2_member" PARTUUID="000c4000-02"
/dev/mapper/centos-root: UUID="60f9c108-b1eb-4347-8739-94034599329c" TYPE="xfs"
/dev/mapper/centos-swap: UUID="2e29e708-8201-4d6f-8f18-09e670c48a5c" TYPE="swap"
/dev/mapper/centos-home: UUID="d70b04a1-1e50-4384-9a46-b06f506e484a" TYPE="xfs"
[root@xxx ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Oct 23 12:02:53 2023
#
# 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=84a8d57f-d656-4b7f-8bb0-3ca385cd6b04 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
b29b5f71-7f3c-4f5d-82ec-b66b7ba85afe            /test   defaults  ext4  0 0

磁盘名称方式挂载

[root@xxx ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Oct 23 12:02:53 2023
#
# 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=84a8d57f-d656-4b7f-8bb0-3ca385cd6b04 /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               /test                   ext4    defaults        0 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新宽网络

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值