磁盘格式化与挂载

1. mke2fs命令

被用于创建磁盘分区上文件系统(格式化)

1
2
3
4
5
6
7
8
9
10
11
12
mke2fs -t ext4 -b 2048 -m 1 -L yule /dev/sdb1
-t 指定磁盘格式 mke2fs目前不支持xfs格式
-b 指定块block大小,默认值是4K
-m 指定给root保留区块的比例,默认值是5%
-L 设定磁盘分区的卷标


mke2fs -i 8192 -t ext4 /dev/sdb1
-i 指定"字节/inode"的比例,最低至少一个块对应一个inode。
默认大概是4个块对应一个inode,4个块=16K=16,384b;
那么默认的"字节/inode"的比例是16384;
将数字改小的话,inode数量就会变多,相反,改大的话,inode数量就会变少,最小值为4096。

2. 格式化分区的一些注意事项

  • 新添加的磁盘分好区以后,不能直接使用,得先格式化
  • 主分区和逻辑分区可以被格式化,扩展分区不能格式化。只能格式化扩展下面的逻辑分区。
  • 查看Linux系统支持的磁盘文件系统格式的配置文件
    cat /etc/filesystems
  • 查看一个分区的文件系统是什么
    mount后,查看dev/开头的文件全名就可以知道了,如
    1
    /dev/mapper/cl-root on / type xfs (rw,relatime,attr2,inode64,noquota)

3. 如何格式化新的磁盘分区

3.1. 创建新的分区

1
2
3
4
5
6
fdisk /dev/sdb
n
p
+3G
w
fdisk -l

3.2. 格式化分区(2种方法)

  • 用mkfs命令

    1
    2
    3
    4
    mkfs -t ext4 /dev/sdb5
    将磁盘分区sdb5格式化为ext4格式分区,默认会给root用户预留原有的2%的空间
    在centos7中,如果想把分区格式化位xfs格式,只有使用mkfs.xfs或mkfs -t /dev/sdb5
    mke2fs默认不支持格式化为xfs格式
  • 用mke2fs命令 (mke2fs是mkfs命令的进化版本,功能更加丰富)

    1
    2
    mke2fs -t ext4 -b 2048 -m 1 -L game /dev/sdb1
    将分区sdb1格式化为ext4文件系统,块大小设为2048b,预留1%空间其中给root用户,并将磁盘命名位 game

3.3 mkfs补充

mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat mkfs.xfs

这里面
mkfs -t ext4 == mkfs.ext4
mkfs -t ext3 == mkfs.ext3
所以,直接可以用 mkfs.ext4命令 来代替 mkfs -t ext4

4. blkid命令

主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。

1
2
3
4
5
6
7
8
9
10
11
12
13
[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: UUID="95ed0ccb-c6ff-4b65-9921-a68dd5d7035b" TYPE="xfs"
可以用来查看为挂载分区的文件类型

[[email protected] ~]# blkid
/dev/sdb1: UUID="95ed0ccb-c6ff-4b65-9921-a68dd5d7035b" TYPE="xfs"
/dev/sdb3: UUID="a17dcca1-6da1-42f1-b955-caacc22bb1fc" TYPE="ext4"
/dev/sda1: UUID="0ae79bcd-e732-46fc-9213-6118c491a714" TYPE="xfs"
/dev/sda2: UUID="AwDLCG-5vsY-OMmL-XeKE-RNEr-y12K-styMJV" TYPE="LVM2_member"
/dev/sr0: UUID="2016-12-05-13-55-45-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/cl-root: UUID="120c5b93-2bee-4af8-9868-140e9de6f281" TYPE="xfs"
/dev/mapper/cl-swap: UUID="49d49d46-b6c2-4a1c-925a-a8e68bdc79b2" TYPE="swap"
列出当前系统中所有文件系统的类型

4.7/4.8 磁盘挂载

1. 挂载

1.1 路径 挂载

1
2
3
mount /dev/sdb5 /mnt/  /mnt/挂载点 
df -T 查看磁盘类型
df -h 查看磁盘信息
  • 不管有没有分区,都可以格式化,磁盘分完区以后,需要挂载 才能写文件进去
  • 一个挂载点只能给一个分区进行服务,
  • 假设有两个分区放在一个挂载点下,只能服务第二个分区,第二个会遮盖第一个,但是卸载掉第二个,第一个分区的数据就会出现

1.2 label卷标/UUID 挂载

  • 通过blkid来获得要挂载分区的UUID
    1
    2
    3
    4
    mount LABEL=aming /home/aming/123/
    mount UUID="95ed0ccb-c6ff-4b65-9921-a68dd5d7035b" /mnt/
    umount /mnt/ 卸载 或者 umount /dev/dev1/
    umount -l 直接卸载(无需退出挂载点)

2. mount命令

用于加载文件系统到指定的加载点

1
2
3
4
5
6
7
mount [-t vfstype(ext4,ntfs...)] [-o options(rw,ro...)] device dir
-l 无需退出卸出挂载
remount 重新挂载

mount -o remount,rw /dev/foo /dir 重新挂载

umount(卸载)磁盘分区

3. /etc/fstab配置文件

fstab包含了开机需要挂载的设备,相应的挂载点,以及属性等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[[email protected] ~]# cat /etc/fstab
**6列分别表示:设备号,挂载点,分区格式,挂载选项,是否备份,设置优先级,
(1,2要检测,1级别更高,0 不检测)**
#
# /etc/fstab
# Created by anaconda on Fri May 26 06:46:23 2017
#
# 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/cl-root / xfs defaults 0 0
UUID=0ae79bcd-e732-46fc-9213-6118c491a714 /boot xfs defaults 0 0
/dev/mapper/cl-swap swap swap defaults 0 0
把分区挂载到挂载点 添加进去
mount UUID="95ed0ccb-c6ff-4b65-9921-a68dd5d7035b" /mnt/ xfs defaults 0 0

4.9 手动增加swap空间

当某一个服务就是需要比较大的swap空间的时候,我们可以手动增加swap空间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
首先弄一个模拟磁盘,在服务器的文件系统里模拟一个100M 的磁盘
dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
> dd 用于操作磁盘,可以写可以读
> if 指定从哪里去读
> /dev/zero 是Linux系统里面的一个造零器,可以产生无数的"0"
> of 将/dev/zero 造出来的"0",写到哪里去
> bs 指定块的大小
> count 计数,总共多少个块

创建虚拟磁盘以后,需要进行格式化
mkswap -f /tmp/newdisk

格式化以后进行挂载
swapon /tmp/newdisk

执行命令之后会提示“权限不安全”。为了安全起见,建议使用0600的权限
chmod 0600 /tmp/newdisk

当使用完毕以后,卸载swap挂载
swapoff /tmp/newdisk
  • free -m 可以查看 swap 的使用情况

拓展:LVM 学习

LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,
相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的
分区加入其中,这样可以事项一种磁盘空间的动态管理,相对于普通的磁盘分区有很
大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就
会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
创建分区--更改类型t(8e)---创建物理卷--创建卷组
pvcreate /dev/sdb1 以此类推创建见三个物理卷
pvdisplay 查看LVM物理卷=pvs
vgcreate vg1 /dev/sdb(物理卷
vgcdisplay查看VM物理卷组=vgs
lvcreate -L 100M(指定大小) -n lv1(lvm)vg1(卷组) ##以此类推做LV2.LV3
mkfs.ext4 /dev/vh1/lv1 格式化lv1
mount /dev/vg1/lv1 /mnt 挂载到/mnt

扩容逻辑卷
lvresize -L 300M /dev/vg1/lv1 重新设置卷大小
e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext4执行)
resize2fs /dev/vg1/lv1 更新逻辑卷信息(ext4执行)
xfs_growfs /dev/vg1/lv1 xfs文件系统需要执行

缩减逻辑卷(xfs不支持)
先卸载umount
e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext)
resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext)
lvresize -L 100M /dev/vg1/lv1 更新设置卷大小

扩展卷组
fdisk /dev/sdb 新增/dev/sdb5(辑分区8e) 2G
pvcreate /dev/sdb5
vgextend vg1 /dev/sdb5 创建物理卷
lvresize -L 100M /dev/vg1/lv1 重新设置卷大小