Linux磁盘操作:分区、格式化、挂载

寻技术 Linux 2023年07月12日 143

Linux磁盘操作:分区、格式化、挂载

一、分区

fdisk分区

(1)fdisk命令只支持msdos,分区的时候只支持小容量硬盘(<=2T),但是如果不需要分区的话,那么整块sdb硬盘,类型为msdos,那么他的大小是可以大于2T的。
(2)fdisk命令不支持gpt,所以当使用fdisk命令给gpt类型硬盘分区是会出现告警

  1. 首先先把设备关机,添加一块新的磁盘

  2. fdisk -l
    
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000e0f54
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200    41943039    19921920   83  Linux
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8ff20778
    
  3. [root@localhost ~]# fdisk /dev/sdb
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    
    命令(输入 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)
    
  4. 命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8ff20778
    
       设备 Boot      Start         End      Blocks   Id  System
    
  5. 添加主分区(扩展一个磁盘 只分一个主分区20G就行 看完跳到下面第8点)

    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    分区号 (1-4,默认 1):
    起始 扇区 (2048-41943039,默认为 2048):
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+500M
    分区 1 已设置为 Linux 类型,大小设为 500 MiB
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8ff20778
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     1026047      512000   83  Linux
    
    
  6. 添加扩展分区

    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): e
    分区号 (2-4,默认 2):
    起始 扇区 (1026048-41943039,默认为 1026048):
    将使用默认值 1026048
    Last 扇区, +扇区 or +size{K,M,G} (1026048-41943039,默认为 41943039):
    将使用默认值 41943039
    分区 2 已设置为 Extended 类型,大小设为 19.5 GiB
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8ff20778
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     1026047      512000   83  Linux
    /dev/sdb2         1026048    41943039    20458496    5  Extended
    
  7. 添加逻辑分区

    逻辑分区默认从5开始

    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (1 primary, 1 extended, 2 free)
       l   logical (numbered from 5)
    Select (default p): l
    添加逻辑分区 5
    起始 扇区 (1028096-41943039,默认为 1028096): 
    将使用默认值 1028096
    Last 扇区, +扇区 or +size{K,M,G} (1028096-41943039,默认为 41943039):+10G
    分区 5 已设置为 Linux 类型,大小设为 10 GiB
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8ff20778
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     1026047      512000   83  Linux
    /dev/sdb2         1026048    41943039    20458496    5  Extended
    /dev/sdb5         1028096    21999615    10485760   83  Linux
    
    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (1 primary, 1 extended, 2 free)
       l   logical (numbered from 5)
    Select (default p): l
    添加逻辑分区 6
    起始 扇区 (22001664-41943039,默认为 22001664):
    将使用默认值 22001664
    Last 扇区, +扇区 or +size{K,M,G} (22001664-41943039,默认为 41943039):
    将使用默认值 41943039
    分区 6 已设置为 Linux 类型,大小设为 9.5 GiB
    
    命令(输入 m 获取帮助):p
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x8ff20778
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     1026047      512000   83  Linux
    /dev/sdb2         1026048    41943039    20458496    5  Extended
    /dev/sdb5         1028096    21999615    10485760   83  Linux
    /dev/sdb6        22001664    41943039     9970688   83  Linux
    
  8. 最后w保存退出

    命令(输入 m 获取帮助):w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    正在同步磁盘。
    
  9. 上面几点了解逻辑分区和扩展分区,这里我们还是选择只留一个20G的主分区就行

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

二、格式化

centos7默认是xfs格式 所以我们分区用mkfs.xfs 命令来格式化/dev/sdb

  1. mkfs.xfs /dev/sdb1

    [root@localhost ~]# mkfs.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
    

三、挂载

linux万物皆文件,需要创建一个文件,让磁盘挂载到此文件上就可以通过此文件对磁盘进行操作了

  1. 创建文件

    [root@localhost /]# mkdir /sdb1
    
  2. mount挂载

    [root@localhost ~]# mount /dev/sdb1 /sdb1
    
  3. df -h 查看

    [root@localhost ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    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   17G  7.7G  9.4G   45% /
    /dev/sda1               1014M  185M  830M   19% /boot
    tmpfs                    182M   12K  182M    1% /run/user/42
    tmpfs                    182M     0  182M    0% /run/user/0
    /dev/sdb1                 20G   33M   20G    1% /sdb1
    
  4. 编辑 /etc/fstab 把挂载信息写入到系统配置文件 重启系统磁盘会自动挂在启用

    编辑的是添加最下面一条信息

    # /etc/fstab
    # Created by anaconda on Sat Mar  4 13:45:56 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=a822cd6c-432c-4cbc-b856-5115e008c975 /boot                   xfs     defaults        0 0
    /dev/mapper/centos-swap swap                    swap    defaults        0 0
    /dev/sdb1       /sdb1   xfs     defaults        0 0
    
  5. 可以重启试试 可以发现开机自动挂载了

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

用微信“扫一扫”