Linux 基础(七)常用命令 - 磁盘分区命令

磁盘分区命令

    • 磁盘相关命令
      • du
      • df
      • free
      • tree
    • 分区相关命令
      • 查看设备挂载明细
      • 挂载/卸载 分区
        • 挂载
        • 卸载
        • 持久挂载
      • 分区
        • 查看当前分区详情
        • 对硬盘分区
          • 分区
          • 为新分区构建文件系统
          • 给新分区挂载一个目录
    • 常见文件系统类型

磁盘相关命令

du

查看目录或者文件占用;默认会递归查询子目录占用

du [opts] 文件/目录

常用参数如下

命令 功能
-a 展示目录大小,同时展示内部文件大小
-c 展示总和
-d 设置递归目录层数,默认展示所有子目录情况; -d 2等同于 --max-depth=2
-h 以人类易读单位展示

df

查看磁剩余空间

基本语法
df -h (以认类易读单位展示)

[root@test-centos abc]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root   40G  8.5G   32G  22% /
/dev/sda1                497M  339M  158M  69% /boot
tmpfs                    182M   12K  182M   1% /run/user/42
tmpfs                    182M     0  182M   0% /run/user/0

以上挂载点除了 / 和 /boot 其他都是系统运行时基于内存的占用
/dev/sda1 分区 挂载到 /boot 目录
剩余的空间默认 /dev/sda2 分区 挂载到 / 目录,只是这里没有完全展示分区2的信息,它里面包括了 swap 分区

free

查看当前内存使用情况

基本语法

free -h

tree

以树形结构展示指定目录下的文件(夹),默认展示当前目录

tree [opts] 目录

分区相关命令

查看设备挂载明细

lsblk -f (额外显式文件系统类型,并显式系统信息)

可以看到

[root@test-centos ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0   42G  0 part
  ├─centos-root 253:0    0   40G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1 10.3G  0 rom
  • 一块硬盘 sda 类型为 disk
    • 下面划了了两个分区 sda1 sda2
      • sda1 挂载到了 /root 目录
      • sda2 没有显式挂载目录,由centos 自动分数据卷分别挂载到 / 和 swap 分区
  • sr0 为加载系统iso的光驱,一个只读设备

硬盘类型及名称 sda类型
SATA 硬盘 sda sdb
SCSI 硬盘 sda sdb
IDE 硬盘 hda hda
虚拟盘 vda vdb

挂载/卸载 分区

将指定的分区挂载到文件系统的一个目录,方可使用该分区。
之后该目录下的所有数据均存放到挂载的分区上。
VM 连接上CDROM 后,默认会将其挂载到 /run/media/root/ 目录下

挂载

命令 mount
基本语法

mount [opts] 分区/设备 或者 挂载点(要挂载的目录)

-t 指定文件系统类型:见最后
-o 指定挂载方式:挂载方式很多;常用: ro 只读,rw读写。

卸载

命令 umount
基本语法

umount 分区/设备名称 或者 挂载点(当前挂载的目录)

持久挂载

mount 和 umount 都是临时挂载/卸载,一旦系统重启,则不会生效。
要实现持久挂载;

最简单的方式,可以修改 /etc/fstab 文件,追加以下内容

# <设备或者设备UUID> <挂载点> <文件系统类型> <挂载选项> <备份频率> <系统引导时顺序>
/dev/sdb1  /mnt/data  ext4  defaults  0  0
UUID=29286fae-66bb-4345-923e-aab0529e1492 /boot xfs defaults 0 0

同样,要持久移除挂载,则删除这里面的配置即可。
当然还有其他的方法:

  • 系统服务
    创建一个系统服务 xxx.amount
[Unit]
Description=Mount Data Directory

[Mount]
What=<设备>
Where=<挂载点>
Type=<文件系统类型>
Options=<挂载选项>

[Install]
WantedBy=multi-user.target

然后将此服务设为开机启动即可。

  • 第三方软件可以实现;如:autofs

分区

命令 fdisk (格式化 硬盘 分区 format disk),需root权限

查看当前分区详情

fdisk -l


[root@test-centos ~]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 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 label type: dos
Disk identifier: 0x000de887

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    89122815    44048384   8e  Linux LVM

Disk /dev/mapper/centos-root: 42.9 GB, 42949672960 bytes, 83886080 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: 2147 MB, 2147483648 bytes, 4194304 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

对硬盘分区

fdisk 硬盘设备名称(/dev/sda)

一块硬盘最多只能有4个主分区。这是由于硬盘的主引导记录(MBR)分区表最多只能容纳4个分区的信息。如果需要划分更多的分区,可以使用扩展分区逻辑分区的组合。扩展分区可以容纳多个逻辑分区,从而扩展硬盘的分区数量。

分区
  • fdisk /dev/sdb
[root@test-centos ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

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
Building a new DOS disklabel with disk identifier 0x79c79dc0.

Command (m for help): m
Command action
   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)
# n:创建新分区
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
   # 主分区
Select (default p): p
# 分区编号
Partition number (1-4, default 1):
# 开始扇区
First sector (2048-41943039, default 2048):
Using default value 2048

# 结束扇区
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

# 保存
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

此时,分区已经创建,我们可以看到,/dev/sdb1,但是该分区还没有分配文件系统

[root@test-centos ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda
├─sda1          xfs                         29286fae-66bb-4345-923e-aab0529e1492   /boot
└─sda2          LVM2_member                 ZkuLJx-EoFT-SFoW-YKy3-iM4U-ltPy-3Apnor
  ├─centos-root xfs                         0c0fbebe-917f-42c6-8939-77b6be5e19ef   /
  └─centos-swap swap                        555aa69d-9a48-4402-a1e0-a2097ba087e2   [SWAP]
sdb
└─sdb1
sr0             iso9660     CentOS 7 x86_64 2019-09-09-19-08-41-00
为新分区构建文件系统

命令:mkfs [opts] 分区名称
参数: -t 指定文件系统类型

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

现在再看设备信息,可以看到已经有了文件系统类型和UUID了,接下来只需要给分区 /dev/sdb1 挂载一个目录就行了

[root@test-centos ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda
├─sda1          xfs                         29286fae-66bb-4345-923e-aab0529e1492   /boot
└─sda2          LVM2_member                 ZkuLJx-EoFT-SFoW-YKy3-iM4U-ltPy-3Apnor
  ├─centos-root xfs                         0c0fbebe-917f-42c6-8939-77b6be5e19ef   /
  └─centos-swap swap                        555aa69d-9a48-4402-a1e0-a2097ba087e2   [SWAP]
sdb
└─sdb1          xfs                         ca750669-3e3b-473a-b112-eb461ed3c6bd
sr0             iso9660     CentOS 7 x86_64 2019-09-09-19-08-41-00
给新分区挂载一个目录
  1. 创建一个用于测试的目录
mkdir /opt/test_sdb1
  1. 将 分区 /dev/sdb1 挂载到目录 /opt/test_sdb1
mount /dev/sdb1 /opt/test_sdb1
  1. 再查看设备挂载信息,可以看到已经成功挂载
[root@test-centos test_sdb1]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda
├─sda1          xfs                         29286fae-66bb-4345-923e-aab0529e1492   /boot
└─sda2          LVM2_member                 ZkuLJx-EoFT-SFoW-YKy3-iM4U-ltPy-3Apnor
  ├─centos-root xfs                         0c0fbebe-917f-42c6-8939-77b6be5e19ef   /
  └─centos-swap swap                        555aa69d-9a48-4402-a1e0-a2097ba087e2   [SWAP]
sdb
└─sdb1          xfs                         ca750669-3e3b-473a-b112-eb461ed3c6bd   /opt/test_sdb1
sr0             iso9660     CentOS 7 x86_64 2019-09-09-19-08-41-00
  1. 测试,在目录 /opt/test_sdb1 下创建一个文件后,看是否写入指定分区
    先查看分区占用
[root@test-centos test_sdb1]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root   40G  8.5G   32G  22% /
/dev/sda1                497M  339M  158M  69% /boot
tmpfs                    182M   12K  182M   1% /run/user/42
tmpfs                    182M     0  182M   0% /run/user/0
/dev/sdb1                 20G   33M   20G   1% /opt/test_sdb1

随便传了个 40+M 的文件到 上述目录,再查看分区占用,可以看到文件确实写入 /dev/sdb1 分区

[root@test-centos test_sdb1]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/mapper/centos-root   40G  8.5G   32G  22% /
/dev/sda1                497M  339M  158M  69% /boot
tmpfs                    182M   12K  182M   1% /run/user/42
tmpfs                    182M     0  182M   0% /run/user/0
/dev/sdb1                 20G   78M   20G   1% /opt/test_sdb1

常见文件系统类型

  • ext4:是Linux上最常用的文件系统类型,支持大容量文件和分区。

  • ext3:是ext4的前身,也是常见的Linux文件系统类型之一,支持日志记录和回滚功能。

  • ext2:是ext3的前身,是较旧的Linux文件系统类型,不支持日志记录功能。

  • XFS:是高性能的文件系统类型,适用于大型文件和高吞吐量的应用场景。

  • Btrfs:是基于COW(写时复制)技术的新兴文件系统类型,具有快照和数据压缩功能。

  • NTFS:是Windows系统中常用的文件系统类型,Linux可以通过ntfs-3g驱动来挂载和读写NTFS分区。

  • FAT32:是用于较小存储设备的文件系统类型,具有广泛的兼容性。

  • HFS+:是Mac OS X系统中常用的文件系统类型,Linux可以通过hfsplus驱动来挂载和读写HFS+分区。

  • ISO 9660:是用于光盘镜像文件的文件系统类型,常用于挂载ISO镜像文件。

  • NFS:是一种网络文件系统类型,允许通过网络挂载和访问远程文件系统。

你可能感兴趣的:(环境搭建,Linux,linux,运维,分区,挂载)