• Linux磁盘分区和管理


    一 添加硬盘,创建Linux分区

    1.首先准备一块新的硬盘

    打开虚拟机(此时系统是关机状态),“编辑虚拟机”----选择“硬盘”----“添加”

    在这里插入图片描述
    选择硬盘,然后下一步

    在这里插入图片描述
    一路默认推荐选项,然后将硬盘大小设置为10G

    在这里插入图片描述

    选择好保存路径,然后就创建成功了。

    2.检查系统是否识别了硬盘

    使用命令lsblk查看新的硬盘是否添加成功。

    [root@canway01 ~]# lsblk
    NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda                        8:0    0   20G  0 disk 
    ├─sda1                     8:1    0  508M  0 part /boot
    └─sda2                     8:2    0 19.5G  0 part 
      ├─centos_canway01-root 253:0    0   18G  0 lvm  /
      └─centos_canway01-swap 253:1    0  1.5G  0 lvm  [SWAP]
    sdb                        8:16   0   10G  0 disk 
    sr0                       11:0    1  4.4G  0 rom  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    此处可以看到,sdb对应的 10G 大小,就是我们刚刚添加的硬盘。

    此外,也可以直接查看设备文件。

    [root@canway01 ~]# ll /dev/sdb
    brw-rw---- 1 root disk 8, 16 Nov 19 18:52 /dev/sdb
    
    • 1
    • 2

    3.对磁盘进行分区

    对于 2TiB 以下的硬盘,笔者使用fdisk命令,采用MBR分区方案在磁盘上添加、修改和删除分区。

    3-1 创建MBR磁盘分区

    fdisk后面以要分区的设备文件作为参数,进入交互式界面

    [root@canway01 ~]# 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 0xceafdf4b.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    输入字母n,创建新的分区
    输入字母p,创建主分区(默认)
    直接回车键,默认选择创建分区1
    再次回车键,默认从上一次的块继续创建分区
    输入+1G,表示创建分区大小为1G

    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-20971519, default 2048): 
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G
    Partition 1 of type Linux and of size 1 GiB is set
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    然后输入数字p,就可以查看当前磁盘的分区信息

    Command (m for help): p
    
    Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0xceafdf4b
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     2099199     1048576   83  Linux
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    根据信息,我们可以发现,/dev/sdb这块10G的硬盘上创建了/dev/sdb1这个分区,该分区大小为1G,属于Linux类型的系统分区,有区块起始位置和最终位置。

    接着,输入字母w,将修改的内容写入磁盘分区表,并退出 fdisk 程序,完成分区创建请求。
    (如果操作错误,不想保存分区请求的内容,则输入字母q,直接退出,且不保存内容)

    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    • 1
    • 2
    • 3
    • 4
    • 5

    最后,使用partprobe 设备文件名称命令,启动内核重新读取磁盘分区表。

    [root@canway01 ~]# partprobe /dev/sdb
    
    • 1

    3-2 创建文件系统

    在创建块设备后,还需要在块设备上创建文件系统,才能存储和检索数据。

    [root@canway01 scripts]# mkfs -t xfs /dev/sdb1
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=262144, 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    或者使用命令mkfs.xfs /dev/sdb1也是一样的效果

    3-3 挂载文件系统

    首先要有一个挂载点(挂载目录),即先创建一个空目录。

    [root@canway01 scripts]# mkdir -p /data/sdb1
    
    • 1

    然后手动(临时性)挂载

    [root@canway01 scripts]# mount /dev/sdb1 /data/sdb1
    [root@canway01 scripts]# mount|tail -1
    /dev/sdb1 on /data/sdb1 type xfs (rw,relatime,attr2,inode64,noquota)
    
    # 如果不确定,可以再验证一下是否挂载正确;无报错,说明挂载成功
    [root@canway01 scripts]# mount -a
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    然后检查一下,此时挂载的设备和目录信息,可以看到挂载是成功的

    [root@canway01 scripts]# df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    devtmpfs                          470M     0  470M   0% /dev
    tmpfs                             487M     0  487M   0% /dev/shm
    tmpfs                             487M  8.1M  479M   2% /run
    tmpfs                             487M     0  487M   0% /sys/fs/cgroup
    /dev/mapper/centos_canway01-root   18G  5.2G   13G  29% /
    /dev/sda1                         505M  165M  340M  33% /boot
    tmpfs                              98M     0   98M   0% /run/user/0
    /dev/sdb1                        1014M   33M  982M   4% /data/sdb1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    但这个手动挂载只是暂时的,在下一次重启后,挂载好的内容会消失,因此我们需要将其写入/etc/fstab文件中,进行永久挂载。

    [root@canway01 scripts]# tail -1 /etc/fstab 
    /dev/sdb1     /data/sdb1     xfs    defaults     0 0
    
    • 1
    • 2

    第一列是挂载的设备文件名,也可以写成UUID="xxx"的形式。如果要查找该设备的UUID,可以使用命令

    [root@canway01 ~]# blkid /dev/sdb1
    /dev/sdb1: UUID="170a4b3d-b684-47f1-b60b-cb18477fb735" TYPE="xfs" 
    
    • 1
    • 2

    相比之下,使用UUID更可靠,因为块设备的标识符在特定情况下可能会发生变化,例如云提供商修改虚拟机的基础存储层。但UUID在设备的超级块中保持不变。

    第二列是挂载点。

    第三列是文件系统类型。

    后三列一般都是defaults 0 0

    到此为止,我们就成功添加一块硬盘并对其分区,可以进行数据的添加、修改、删除和检索了。

    二 创建交换空间

    2-1 创建分区

    3的操作一模一样,创建一个新的分区

    2-2 设置分区类型

    输入字母t,设置分区类型
    输入数字2,选择第二个分区
    输入编码82,表示设置linux的交换分区

    Command (m for help): t
    Partition number (1,2, default 2): 2
    Hex code (type L to list all codes): 82
    Changed type of partition 'Linux' to 'Linux swap / Solaris'
    
    • 1
    • 2
    • 3
    • 4

    然后检查一遍设置是否正确

    Command (m for help): p
    
    Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0xceafdf4b
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     2099199     1048576   83  Linux
    /dev/sdb2         2099200     4196351     1048576   82  Linux swap / Solaris
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    然后输入w保存信息并退出
    最后输入partprobe /dev/sdb加载内核读取磁盘分区表。

    2-3 格式化交换空间

    向设备应用交换签名

    [root@canway01 ~]# mkswap /dev/sdb2
    Setting up swapspace version 1, size = 1048572 KiB
    no label, UUID=0e6f832a-4090-43b6-8617-8e1aef6f58c3
    
    • 1
    • 2
    • 3

    2-4 激活交换空间

    此时并没有启用新创建的交换空间,需要进一步激活才可以。

    [root@canway01 ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:           972M        188M        588M        8.0M        195M        638M
    Swap:          1.5G          0B        1.5G
    [root@canway01 ~]# swapon  /dev/sdb2
    [root@canway01 ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:           972M        189M        587M        8.0M        195M        638M
    Swap:          2.5G          0B        2.5G
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    (如果要禁用该交换空间,使用命令swapoff /dev/sdb2

    并在/etc/fstab文件中使用UUID挂载

    [root@canway01 ~]# tail -1 /etc/fstab 
    UUID=0e6f832a-4090-43b6-8617-8e1aef6f58c3  swap                    swap    defaults        0 0
    
    • 1
    • 2

    最后验证新的交换空间是否已经启用

    [root@canway01 ~]# swapon -s
    Filename                                Type            Size    Used    Priority
    /dev/dm-1                               partition       1572860 0       -2
    /dev/sdb2                               partition       1048572 0       -3
    
    • 1
    • 2
    • 3
    • 4

    三 删除磁盘的分区

    3-1 备份数据

    防止在对磁盘的错误操作而导致数据丢失,应该先对磁盘中的数据做好备份或迁移。

    3-2 取消挂载

    在取消挂载后,应检查一下磁盘挂载信息,进行确认。

    umount /data/sdb1
    df -h
    
    • 1
    • 2

    如果在/etc/fstab中设置的永久挂载,还应删除或注释其挂载信息。

    3-3 对磁盘分区进行删除操作

    输入字母d,表示删除分区

    [root@canway01 ~]# 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.
    
    
    Command (m for help): d
    Selected partition 1
    Partition 1 is deleted
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    然后输入字母w,保存修改的请求
    退出 fdisk 后,启动内核重新读取磁盘分区表,使其生效。

    partprobe /dev/sdb
    
    • 1
  • 相关阅读:
    http服务网络请求如何确保数据安全(含python示例源码)
    GCC详解的-Wl选项说明与测试
    LeetCode --- 1380. Lucky Numbers in a Matrix 解题报告
    LeetCode 周赛 334,在算法的世界里反复横跳
    应用开发平台集成表单设计器系列之3——整体集成思路及表单设计器功能深度了解
    硬链接和软连接的区别
    android Binder安全性、Unix Socket安全性研究
    微信小程序 - 渲染和逻辑
    JavaScript——APIs
    ES日期时间格式化参数集锦
  • 原文地址:https://blog.csdn.net/oldboy1999/article/details/127939622