12.磁盘分区 -- 对磁盘分区,文件系统修改,挂载

Posted 永远的红茶加白地兰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12.磁盘分区 -- 对磁盘分区,文件系统修改,挂载相关的知识,希望对你有一定的参考价值。

1. 磁盘基本分区Fdisk

1.添加一块小于2TB的磁盘进行使用,步骤如下:
1.给虚拟机添加一块新的硬盘
2.使用fdisk进行分区
3.使用mkfs进行格式化
4.使用mount进行挂载
PS: 生产分区建议,如无特殊需求直接使用整个磁盘即可,无需分区。
PS: 学习分区建议: 1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)

//fdisk对磁盘分区
[17:14:47 root@centos8] ~]#fdisk -l
//
[17:21:12 root@centos8] ~]#fdisk /dev/sdc
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.
Command action
   a   toggle a bootable flag               #切换分区启动标记
   b   edit bsd disklabel                   #编辑sdb磁盘标签
   c   toggle the dos compatibility flag    #切换dos兼容模式
   d   delete a partition                   #删除分区
   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     #创建新的Sun磁盘标签
   t   change a partitions system id       #修改分区ID,可以通过l查看id
   u   change display/entry units           #修改容量单位,磁柱或扇区
   v   verify the partition table           #检验分区表
   w   write table to disk and exit         #保存退出
   x   extra functionality (experts only)   #拓展功能

例如:对120g的sdc分成3个区
[16:35:32 root@centos8] ~]#fdisk /dev/sdc

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 0x8e3d28ce.

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
Partition number (1-4, default 1): 1
First sector (2048-251658239, default 2048): 
//第一部分分40g
Last sector, +sectors or +size{K,M,G,T,P} (2048-251658239, default 251658239): +40G

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

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (83888128-251658239, default 83888128): 
Last sector, +sectors or +size{K,M,G,T,P} (83888128-251658239, default 251658239): +60G

Created a new partition 2 of type \'Linux\' and of size 60 GiB.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (209717248-251658239, default 209717248): 
//分第三部分的时候数值超出越界
Last sector, +sectors or +size{K,M,G,T,P} (209717248-251658239, default 251658239): +20G
Value out of range. 
//所以第三部分分成了10g
Last sector, +sectors or +size{K,M,G,T,P} (209717248-251658239, default 251658239): +10G

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

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

[16:41:19 root@centos8] ~]#lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  200G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0  199G  0 part 
  ├─cl-root 253:0    0   70G  0 lvm  /
  ├─cl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl-home 253:2    0  127G  0 lvm  /home
sdb           8:16   0   20G  0 disk 
sdc           8:32   0  120G  0 disk 
├─sdc1        8:33   0   40G  0 part 
├─sdc2        8:34   0   60G  0 part 
└─sdc3        8:35   0   10G  0 part 
sr0          11:0    1  9.3G  0 rom  
[16:41:21 root@centos8] ~]#partprobe /dev/sdc    //同步,更新分区表

2.mkfs创建文件系统

创建文件管理工具

mkfs命令:FS_TYPE是要创建的文件系统名; DEVICE是设备名称
(1) mkfs.FS_TYPE /dev/DEVICE
         ext4
         xfs
         btrfs
         vfat
(2) mkfs -t FS_TYPE /dev/DEVICE
-L \'LABEL\' 设定卷标
mke2fs:ext系列文件系统专用管理工具
常用选项
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2048|4096} 指定块 block 大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #  为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N #  指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...]  启用指定特性
-O ^FEATURE 关闭指定特性
例:将sdc1格式化为ext4的文件系统
[17:10:15 root@centos8] ~]#mkfs -t ext4 /dev/sdc1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdc1 contains a xfs file system
Proceed anyway? (y,N) y
Creating filesystem with 10485760 4k blocks and 2621440 inodes
Filesystem UUID: be1b9de8-2504-4f7f-a3d1-2da00ba9f0ee
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624

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

3.fsck,e2fsck文件系统检测和修复

注意:一定不要在挂载状态下执行以下命令

(1)检测系统 fsck.xfs 或fsck.ext4 也就是fsck.文件系统名

4.挂载

挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入
口的行为
卸载:为解除此关联关系的过程
把设备关联挂载点:mount Point
挂载点下原有文件在挂载完成后会被临时隐藏,因此,挂载点目录一般为空
进程正在使用中的设备无法被卸载

挂载文件系统mount

格式:
device:指明要挂载的设备
设备文件:例如:/dev/sda5
卷标:-L \'LABEL\', 例如 -L \'MYDATA\'
UUID: -U \'UUID\':例如 -U \'0c50523c-43f1-45e7-85c0-a126711d406e\'
伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在,建议使用空目录

mount常用命令选项
-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n  不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L \'LABEL\' 以卷标指定挂载设备
-U \'UUID\' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async 异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中
sync 同步模式,内存更改时,同时写磁盘
atime/noatime 包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持自动挂载,是否支持-a选项
exec/noexec 是否支持将文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount  重新挂载
ro 只读 rw 读写
user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
acl 启用此文件系统上的acl功能
loop 使用loop设备
_netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
defaults 相当于rw, suid, dev, exec, auto, nouser, async

挂载规则:

一个挂载点,同一时间只能挂载一个设备
一个挂载点,同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
一个设备可以同时挂载到多个挂载点
通常挂载点一般是已存在空的目录

卸载文件系统 umount

卸载时:可使用设备,也可以使用挂载点

umount 设备名|挂载点

查看挂载情况

查看挂载

#通过查看/etc/mtab文件显示当前已挂载的所有设备
mount
#查看内核追踪到的已挂载的所有设备
cat /proc/mounts
findmnt  MOUNT_POINT|device

查看挂载点情况

findmnt  MOUNT_POINT|device

查看正在访问指定文件系统的进程

lsof MOUNT_POINT
fuser -v MOUNT_POINT

终止所有在正访问指定的文件系统的进程

fuser -km MOUNT_POINT

持久挂载

将挂载保存到 /etc/fstab 中可以下次开机时,自动启用挂载
/etc/fstab格式 帮助:man 5 fstab
每行定义一个要挂载的文件系统,,其中包括共 6 项

  1. 要挂载的设备或伪文件系统
    设备文件
    LABEL:LABEL=""
    UUID:UUID=""
    伪文件系统名称:proc, sysfs
  2. 挂载点:必须是事先存在的目录
  3. 文件系统类型:ext4,xfs,iso9660,nfs,none
  4. 挂载选项:defaults ,acl,bind
  5. 转储频率:0:不做备份 1:每天转储 2:每隔一天转储
  6. fsck检查的文件系统的顺序:允许的数字是0 1 2
    0:不自检 ,1:首先自检;一般只有rootfs才用 2:非rootfs使用
    添加新的挂载项,需要执行下面命令生效
    范例:centos8 /etc/fstab 的分区UUID错误,无法启动
    范例:centos6 /etc/fstab 的分区UUID错误,无法启动

以上是关于12.磁盘分区 -- 对磁盘分区,文件系统修改,挂载的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘分区挂在

当Linux系统没有多余的磁盘空间可以挂在的时候怎么办???

openwrt挂载硬盘怎么样做都只能挂四个分区

求救:openwrt硬盘怎么样做都只能挂四个分区

fdisk命令总结

磁盘分区和文件系统管理