磁盘分区、格式化、检验和挂载
- 1.观察磁盘的分区状态
- 2.UUID
- 3.磁盘分区(gdisk/fdisk)
- 3.1 gdisk
- 3.2 fdisk
- 4.磁盘的格式化
- 4.1 XFS文件系统的格式化
- 4.2 ext4文件系统的格式化
- 5.文件系统的救援
- 6.文件系统的挂载与卸载
- 6.1 挂载
- 6.2 卸载
- 7.设置开机挂载
- 8.特殊设备loop的挂载
磁盘使用的过程:分区---->格式化---->挂载
1.观察磁盘的分区状态
使用lsblk
(list block device)命令
[root@CentOS7 tmp]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 30G 0 part
├─centos-root 253:0 0 10G 0 lvm /
├─centos-swap 253:1 0 1G 0 lvm [SWAP]
└─centos-home 253:2 0 5G 0 lvm /home
sr0 11:0 1 9.5G 0 rom /run/media/fle/CentOS 7 x86_64
NAME: 就是设备的文件名啰! 会省略 /dev 等前导目录!
MAJ:MIN: 其实核心认识的设备都是通过这两个代码来熟悉的! 分别是主要: 次要设备代码!
RM: 是否为可卸载设备 ( removable device) , 如光盘、 USB 磁盘等等
SIZE: 当然就是容量啰!
RO: 是否为只读设备的意思
TYPE: 是磁盘 ( disk) 、 分区 ( partition) 还是只读存储器 ( rom) 等输出
MOUTPOINT: 挂载点!
2.UUID
UUID(Universally Unique Identifier,全局唯一标识符)是一种用于标识信息的标准格式。UUID 由一串32个十六进制数字组成,通常表示为36个字符的字符串,分为5组,格式为:8-4-4-4-12(例如:550e8400-e29b-41d4-a716-446655440000)。
UUID 的特点:
①唯一性:UUID的设计确保生成的ID几乎不可能重复,适合在分布式系统中唯一标识对象。
②长度固定:UUID的格式和长度固定(128位),方便存储和传输。
③无需中央协调:每台机器可以独立生成UUID,无需联网或同步。
在Linux系统中,UUID常用于标识磁盘分区,确保分区在不同系统中识别一致。
查看UUID:blkid
命令
[root@CentOS7 tmp]# blkid
/dev/sda1: PARTUUID="ee5b642b-cbf7-4043-b414-0784dd0c429b"
/dev/sda2: UUID="60caebd2-29b8-4348-a776-fcca119a58c5" TYPE="xfs" PARTUUID="eeead530-a502-459e-bb53-1b9b3e34b760"
/dev/sda3: UUID="m5IDTu-EMzJ-xgVZ-4Thh-BF9N-8tJz-vx7RuK" TYPE="LVM2_member" PARTUUID="a52a4532-cfbe-4559-8710-ff9d3a569a34"
/dev/sr0: UUID="2020-11-02-15-15-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="e0d1cec5-d50c-467f-97a9-a59ad8472a00" TYPE="xfs"
/dev/mapper/centos-swap: UUID="23d6d567-b1ca-4669-9b77-dcac5240a615" TYPE="swap"
/dev/mapper/centos-home: UUID="3e14987f-a7fa-441e-b3f8-c1a952ce7cf0" TYPE="xfs"
Linux 会将系统内所有的设备都给予一个独一无二的识别码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用了。上面的sda就表示硬盘,sr0表示的是挂载的Centos7镜像,centos-root、centos-swap、centos-home则是由LVM创建的逻辑分区。
Tips:GUID其实和UUID没什么区别
3.磁盘分区(gdisk/fdisk)
3.1 gdisk
由第1小节知道,Centos7所在的磁盘为sda。首先使用parted命令来确定sda是GPT还是MBR:
[root@CentOS7 ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name 标志
1 1049kB 3146kB 2097kB bios_grub
2 3146kB 1077MB 1074MB xfs
3 1077MB 33.3GB 32.2GB lvm
从上面可以看出,分区表的格式为GPT,且有3个分区。
既然为GPT分区格式,那么就使用gdisk来进行分区:
[root@CentOS7 ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 18862013 sectors (9.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
Command (? for help):
从上面可以看到,我们可以用?
来列出所有的可选命令。p
明令打印的分区表,可以看到,三个分区使用的扇区为2048-65026047,而总的可用扇区为34-83886046,其实也就是还剩下9GB可以使用。所以我们可以拿这9GB进行分区的测试。
对于分区表,每一项的意义如下所示:
Tips:注意gdisk或者是fdisk都是针对的硬盘,而不是分区,所以是gdisk /dev/sda
而不是gdisk /dev/sda1
。
下面进行分区:
其中,Linxu文件系统的Code为8300,Window文件系统为0700,Linux swap为8200
[root@CentOS7 ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 18862013 sectors (9.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
Command (? for help): n
Partition number (4-128, default 4):
First sector (34-83886046, default = 65026048) or {+-}size{KMGTP}:
Last sector (65026048-83886046, default = 83886046) or {+-}size{KMGTP}: +1G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE
3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8300 Linux filesystem 8301 Linux reserved
8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap
a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot
bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap
bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home
bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2
bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5
c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT
eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit
Press the <Enter> key to see more codes:
ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition
fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p
fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 16764861 sectors (8.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
4 65026048 67123199 1024.0 MiB 8300 Linux filesystem
Command (? for help): n
Partition number (5-128, default 5):
First sector (34-83886046, default = 67123200) or {+-}size{KMGTP}:
Last sector (67123200-83886046, default = 83886046) or {+-}size{KMGTP}: +1G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 14667709 sectors (7.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
4 65026048 67123199 1024.0 MiB 8300 Linux filesystem
5 67123200 69220351 1024.0 MiB 0700 Microsoft basic data
Command (? for help): n
Partition number (6-128, default 6):
First sector (34-83886046, default = 69220352) or {+-}size{KMGTP}:
Last sector (69220352-83886046, default = 83886046) or {+-}size{KMGTP}: +0.5G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200
Changed type of partition to 'Linux swap'
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
4 65026048 67123199 1024.0 MiB 8300 Linux filesystem
5 67123200 69220351 1024.0 MiB 0700 Microsoft basic data
6 69220352 83886046 7.0 GiB 8200 Linux swap
Command (? for help): d
Partition number (1-6): 6
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 14667709 sectors (7.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
4 65026048 67123199 1024.0 MiB 8300 Linux filesystem
5 67123200 69220351 1024.0 MiB 0700 Microsoft basic data
Command (? for help): n
Partition number (6-128, default 6):
First sector (34-83886046, default = 69220352) or {+-}size{KMGTP}:
Last sector (69220352-83886046, default = 83886046) or {+-}size{KMGTP}: +500M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200
Changed type of partition to 'Linux swap'
Command (? for help): p
Disk /dev/sda: 83886080 sectors, 40.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 03D323D1-52D7-4E86-8C87-15F5377B5FCA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 83886046
Partitions will be aligned on 2048-sector boundaries
Total free space is 13643709 sectors (6.5 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 2103295 1024.0 MiB 0700
3 2103296 65026047 30.0 GiB 8E00
4 65026048 67123199 1024.0 MiB 8300 Linux filesystem
5 67123200 69220351 1024.0 MiB 0700 Microsoft basic data
6 69220352 70244351 500.0 MiB 8200 Linux swap
可以看到上面有一个插曲,新增sda6分区的时候,使用+0.5G
选项时并不能正确分配500M,因为不支持浮点数,所以应该使用+500M
。
接下来,将配置好的分区设置生效:
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
通过partprobe
更新Linux核心的分区表:
[root@CentOS7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 30G 0 part
├─centos-root 253:0 0 10G 0 lvm /
├─centos-swap 253:1 0 1G 0 lvm [SWAP]
└─centos-home 253:2 0 5G 0 lvm /home
sr0 11:0 1 9.5G 0 rom /run/media/fle/CentOS 7 x86_64
[root@CentOS7 ~]# partprobe -s
/dev/sda: gpt partitions 1 2 3 4 5 6
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
/dev/sr0: msdos partitions 2
[root@CentOS7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
├─sda3 8:3 0 30G 0 part
│ ├─centos-root 253:0 0 10G 0 lvm /
│ ├─centos-swap 253:1 0 1G 0 lvm [SWAP]
│ └─centos-home 253:2 0 5G 0 lvm /home
├─sda4 8:4 0 1G 0 part
├─sda5 8:5 0 1G 0 part
└─sda6 8:6 0 500M 0 part
sr0 11:0 1 9.5G 0 rom /run/media/fle/CentOS 7 x86_64
3.2 fdisk
fdisk是针对MBR分区格式的,大体和gdisk是一样的,可以查看具体的命令如下:
[root@CentOS7 ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help):
4.磁盘的格式化
4.1 XFS文件系统的格式化
将上面的sda4格式化为xfs文件系统:
[root@CentOS7 ~]# mkfs.xfs /dev/sda4
meta-data=/dev/sda4 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
[root@CentOS7 ~]# blkid /dev/sda4
/dev/sda4: UUID="adf4236a-63e6-4fd7-bfa8-84e34f914193" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="a1d5ff70-7885-4f6d-8827-a5e48697dd4e"
每个文件系统的 UUID 是唯一的,即使格式相同的两个分区也会有不同的 UUID。PARTUUID 是分区表中的一个全局唯一的标识符,确保在不同设备上识别分区。
4.2 ext4文件系统的格式化
将sda5格式化为ext4
[root@CentOS7 ~]# blkid /dev/sda5
/dev/sda5: PARTLABEL="Microsoft basic data" PARTUUID="de0b15d4-f3df-4e2e-a279-b4c2f399ab1d"
[root@CentOS7 ~]# mkfs.ext4 /dev/sda5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@CentOS7 ~]# blkid /dev/sda5
/dev/sda5: UUID="4c118109-8dbc-4ea1-bf54-02af5d66ca54" TYPE="ext4" PARTLABEL="Microsoft basic data" PARTUUID="de0b15d4-f3df-4e2e-a279-b4c2f399ab1d"
Tips:其他文件系统的格式化mkfs -t vfat /dev/sda5
5.文件系统的救援
xfs:
ext4:
6.文件系统的挂载与卸载
6.1 挂载
一个磁盘分区被格式化为某种文件系统后,还不能直接使用这块分区,需要将这个文件系统(或者说是磁盘分区)挂载到某一个目录,然后通过这个目录就可以访问这块磁盘分区了
挂载的条件:
①单一文件系统不应该被重复挂载在不同的挂载点( 目录) 中;
②单一目录不应该重复挂载多个文件系统;
③要作为挂载点的目录, 理论上应该都是空目录才是。
将/dev/sda4
挂载到/data/xfs
,/dev/sda5
挂载到/data/ext4
:
[root@CentOS7 /]# cd ~
[root@CentOS7 ~]# mkdir -p /data/xfs /data/ext4
[root@CentOS7 ~]# cd /data
[root@CentOS7 data]# ls
ext4 xfs
[root@CentOS7 data]# mount /dev/sda4 /data/xfs
[root@CentOS7 data]# blkid /dev/sda5
/dev/sda5: UUID="4c118109-8dbc-4ea1-bf54-02af5d66ca54" TYPE="ext4" PARTLABEL="Microsoft basic data" PARTUUID="de0b15d4-f3df-4e2e-a279-b4c2f399ab1d"
[root@CentOS7 data]# mount UUID="4c118109-8dbc-4ea1-bf54-02af5d66ca54" /data/ext4
[root@CentOS7 data]# df /dev/sda4 /dev/sda5
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda4 1038336 32992 1005344 4% /data/xfs
/dev/sda5 999320 2564 927944 1% /data/ext4
挂载的时候可以用设备名称/dev/sda4
,也可以用设备的UUID进行挂载。
6.2 卸载
卸载sda4和sda5的挂载:
首先查看挂载情况:
[root@CentOS7 data]# mount
。。。
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
/dev/sda4 on /data/xfs type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda5 on /data/ext4 type ext4 (rw,relatime,data=ordered)
卸载:
[root@CentOS7 data]# umount /dev/sda4
[root@CentOS7 data]# umount /data/ext4
[root@CentOS7 data]# mount
。。。
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
[root@CentOS7 data]# df /dev/sda4 /dev/sda5
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 480824 0 480824 0% /dev
devtmpfs 480824 0 480824 0% /dev
卸载的时候,可以用设备名,也可以用挂载的目录名。
Tips:在挂载的目录下卸载肯定是会失败的,退出即可
[root@CentOS7 data]# mount /dev/sda4 /data/xfs
[root@CentOS7 data]# df /dev/sda4
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda4 1038336 32992 1005344 4% /data/xfs
[root@CentOS7 data]# cd xfs
[root@CentOS7 xfs]# umount /dev/sda4
umount: /data/xfs:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
[root@CentOS7 xfs]# cd ..
[root@CentOS7 data]# umount /dev/sda4
[root@CentOS7 data]# df /dev/sda4
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 480824 0 480824 0% /dev
7.设置开机挂载
与挂载相关的文件为/etc/fstab
。查看其内容如下:
[root@CentOS7 data]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat May 18 20:56:44 2024
#
# 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=60caebd2-29b8-4348-a776-fcca119a58c5 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults,uquota,pquota 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
可以看到这个文件只记录了三个挂载点,每一行有6个项:[设备/UUID等] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]
①[设备/UUID等]
这个字段可以填写的数据主要有三个项目:
文件系统或磁盘的设备文件名, 如 /dev/vda2 等;
文件系统的 UUID 名称, 如 UUID=xxx;
文件系统的 LABEL 名称, 例如 LABEL=xxx
②挂载点
一定是目录
③文件系统
在手动挂载时可以让系统自动测试挂载, 但在这个文件当中我们必须要手动写入文件系统才行! 包括 xfs, ext4, vfat,reiserfs, nfs 等等。
④文件系统参数
⑤dump
dump 是一个用来做为备份的指令, 不过现在有太多的备份方案了, 所以这个项目可以不要理会啦! 直接输入 0 就好了!
⑥fsck
早期开机的流程中, 会有一段时间去检验本机的文件系统, 看看文件系统是否完整( clean) 。 不过这个方式使用的主要是通过 fsck 去做的, 我们现在用的 xfs 文件系统就没有办法适用, 因为 xfs 会自己进行检验, 不需要额外进行这个动作! 所以直接填 0 就好了。
/etc/fstab 是开机时的配置文件, 不过, 实际 filesystem 的挂载是记录到 /etc/mtab 与/proc/mounts 这两个文件当中的。 每次我们在更动 filesystem 的挂载时, 也会同时更动这两个文件喔! 但是, 万一发生你在 /etc/fstab 输入的数据错误, 导致无法顺利开机成功, 而进入单人维护模式当中, 那时候的 / 可是 read only 的状态, 当然你就无法修改 /etc/fstab , 也无法更新 /etc/mtab 啰~那怎么办? 没关系, 可以利用下面这一招:[root@study ~]# mount -n -o remount,rw /
下面将sda4和sda5添加到开机挂载(写入之前先把挂载卸载掉,便于后面测试,确保没写错,不然开机的时候执行/etc/fstab出错是很麻烦的):
[root@CentOS7 ~]# df /dev/sda4 /dev/sda5
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 480824 0 480824 0% /dev
devtmpfs 480824 0 480824 0% /dev
[root@CentOS7 ~]# nano /etc/fstab
[root@CentOS7 ~]# mount -a
[root@CentOS7 ~]# df /dev/sda4 /dev/sda5
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda4 1038336 32992 1005344 4% /data/xfs
/dev/sda5 999320 2564 927944 1% /data/ext4
nano /etc/fstab
后写入后的文件内容为:
#
# /etc/fstab
# Created by anaconda on Sat May 18 20:56:44 2024
#
# 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=60caebd2-29b8-4348-a776-fcca119a58c5 /boot xfs defau$
/dev/mapper/centos-home /home xfs defaults,uquota,pquota $
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sda4 /data/xfs xfs defaults 0 0
/dev/sda5 /data/ext4 ext4 defaults 0 0
mount -a 命令的作用是挂载 /etc/fstab 文件中列出的所有未挂载的文件系统。它会根据 /etc/fstab 文件的内容,将所有设置为 auto 挂载选项的分区挂载到指定的挂载点。
8.特殊设备loop的挂载
想像一下如果今天我们从国家高速网络中心( http://ftp.twaren.net) 或者是昆山科大( http://ftp.ksu.edu.tw) 下载了 Linux 或者是其他所需光盘/DVD的镜像文件后, 难道一定需要烧录成为光盘才能够使用该文件里面的数据吗? 当然不是啦! 我们可以通过 loop 设备来挂载的!
想一想, 既然能够挂载 DVD 的镜像文件, 那么我能不能制作出一个大文件, 然后将这个文件格式化后挂载呢? 好问题! 这是个有趣的动作! 而且还能够帮助我们解决很多系统的分区不良的情况呢! 举例来说, 如果当初在分区时, 你只有分区出一个根目录, 假设你已经没有多余的容量可以进行额外的分区的! 偏偏根目录的容量还很大! 此时你就能够制作出一个大文件, 然后将这个文件挂载! 如此一来感觉上你就多了一个分区啰! 用途非常的广泛啦!
下面我们在 /srv 下创建一个 512MB 左右的大文件, 然后将这个大文件格式化并且实际挂载:
创建大文件的指令:dd
[root@CentOS7 ~]# ls -a /srv/
. ..
[root@CentOS7 ~]# dd if=/dev/zero of=/srv/loopdev bs=1M count=512
记录了512+0 的读入
记录了512+0 的写出
536870912字节(537 MB)已复制,0.502918 秒,1.1 GB/秒
[root@CentOS7 ~]# ls -a /srv/
. .. loopdev
[root@CentOS7 ~]# ll -h /srv/loopdev
-rw-r--r-- 1 root root 512M 11月 8 17:12 /srv/loopdev
格式化文件,默认 xfs 不能够格式化文件的, 所以要格式化文件得要加入特别的参数才行:
[root@CentOS7 ~]# mkfs.xfs -f /srv/loopdev
meta-data=/srv/loopdev isize=512 agcount=4, agsize=32768 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=131072, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@CentOS7 ~]# blkid /srv/loopdev
/srv/loopdev: UUID="182c4e1c-0b9b-4ba5-9a8c-985975b12429" TYPE="xfs"
接下来是挂载(利用 mount 的特殊参数, 那个 -o loop 的参数来处理):
[root@CentOS7 ~]# mount -o loop UUID="182c4e1c-0b9b-4ba5-9a8c-985975b12429" /mnt
[root@CentOS7 ~]# df /mnt
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/loop0 520868 26436 494432 6% /mnt
同样将其写入到开机挂载:
[root@CentOS7 ~]# df /mnt
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/loop0 520868 26436 494432 6% /mnt
[root@CentOS7 ~]# umount UUID="182c4e1c-0b9b-4ba5-9a8c-985975b12429"
[root@CentOS7 ~]# df /mnt
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 10475520 8403984 2071536 81% /
[root@CentOS7 ~]# nano /etc/fstab
[root@CentOS7 ~]# mkdir -p /data/file
[root@CentOS7 ~]# mount -a
[root@CentOS7 ~]# df /data/file
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/loop0 520868 26436 494432 6% /data/file
nono写入后为(这里就不用/mnt挂载了,而是用 /data/file):
#
# /etc/fstab
# Created by anaconda on Sat May 18 20:56:44 2024
#
# 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=60caebd2-29b8-4348-a776-fcca119a58c5 /boot xfs defau$
/dev/mapper/centos-home /home xfs defaults,uquota,pquota $
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sda4 /data/xfs xfs defaults 0 0
/dev/sda5 /data/ext4 ext4 defaults 0 0
/srv/loopdev /data/file xfs defaults 0 0