Linux 基础 - 文件系统
Linux 文件系统
Linux 支持多种文件系统,例如:ext2、ext3、ext4、zfs、iso9660、msdoc、smbfs、nfs等。
Linux 最早的文件系统是 minix,但是这种文件系统由于文件名最长只可以是 14 个字符,文件最大只能是 64MB 等因素,后来被 ext2 (The Second Extended File System) 文件系统所替代,但是 ext2 文件系统不支持日志功能,很容易丢失数据。为了弥补 ext2 文件系统的不足,所以出现了有日志功能的 ext3 文件系统,ext3 文件系统完全兼容 ext2 文件系统,而且只需要两条命令就可以将 ext2 转换为 ext3。而 ext4 是 ext3 的改进版,修改了 ext3 中部分重要的数据结构,与 ext3 兼容,ext3 也可以转换为 ext4,相比于 ext3 目前支持最大 16TB 文件系统和最大 2TB 文件,ext4 分别支持 1EB (1EB=1024PB,1PB=1024TB) 的文件系统和 16TB 的文件,并且 ext4 支持无限数量的子目录 (ext3 目前只支持 32000 个子目录),目前 Linux 一般使用 ext4 文件系统。
磁盘分区、创建文件系统、挂载
磁盘使用前要进行分区,而分区分为 MBR 分区和 GPT 分区,MBR 分区就是以前 Windows XP 或者 Windows 7 所用的,当电脑启动时会先加载 BIOS,再由 BIOS 加载 MBR,MBR 再启动系统。而 GPT 分区是一种新的磁盘组织方法,它是由 UEFI 启动的。MBR 最多支持 4 个主分区 (其余的是扩展分区里的逻辑分区),并且最多支持 2T 的硬盘,而 GPT 则没有限制。本文采用 MBR 分区进行。
磁盘分好区后要创建文件系统 (格式化),最后将该分区挂载到系统中某个挂载点才可以使用。
创建文件系统:fdisk
-l
列出所有分区表
[root@localhost ~]# fdisk -l
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x000c2e6f
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
可以看出,这台机器里有两个磁盘设备,sda 和 sdb,而 sda 是安装了 CentOS 的磁盘设备,sdb 则是一块空的磁盘设备,接下来对 sdb 进行分区操作
输入 fdisk /dev/sdb
即可对 sdb 进行操作
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x33a583a8 创建新的 DOS 磁盘标签。
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
- 第一个命令:n,代表 new,也就是新建分区
- 然后需要选择 p:主分区,e:扩展分区,这里选择 p 主分区
- 接下来输入分区号 1,代表第一个分区
- 接下来输入扇区的起始位置,因为这是第一个分区,所以是范围的开始 2048
- 然后输入扇区的结束位置,因为我只想分一个分区,所以是范围的最后 41943039
- 最后一个命令:w,代表将刚才的操作写入分区表
接下来再次查看分区表
[root@localhost ~]# fdisk -l
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x33a583a8
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x000c2e6f
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
可以看到和之前相比,多了一个 sdb1 的分区,说明分区成功了
格式化文件系统:mkfs
命令:mkfs -t ext4 /dev/sdb1
将 sdb1 分区格式化为 ext4 文件系统
也可以简化命令:mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
磁盘挂载:mount
接下来将 sdb1 挂载之后才可以使用,而挂载点只能是目录,所谓挂载可以理解为,我创建了一个目录 /vDisk,然后将 sdb1 挂载到 /vDisk,然后 /vDisk 显示的就是 sdb1 中的数据,就像 Windows 中你插了一个 U 盘,然后文件资源管理器中就出现了一个可移动磁盘。
# 创建 /vDisk
[root@localhost ~]# mkdir /vDisk
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var vDisk
# 挂载 /dev/sdb1 到 /vDisk
[root@localhost ~]# mount /dev/sdb1 /vDisk
# 查看 sdb1 的挂载
[root@localhost ~]# mount | grep sdb1
/dev/sdb1 on /vDisk type ext4 (rw,relatime,seclabel,data=ordered)
# 查看 sdb1 的可用空间
[root@localhost ~]# df -h | grep sdb1
/dev/sdb1 20G 45M 19G 1% /vDisk
umount
解除挂载 umount /dev/sdb1
或者 umount /vDisk
设置启动自动挂载:/etc/fstab
mount 命令挂载的分区在重启计算机之后就会消失,所以需要配置 /etc/fstab 时刻系统启动后自动挂载
可以直接修改 /etc/fstab 内容,也可以使用 echo >>
[root@localhost ~]# echo "/dev/sdb1 /vDisk ext4 defaults 0 0" >> /etc/fstab
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Sep 25 08:27:56 2020
#
# 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=10ea7acb-07aa-40a0-8dc4-a7e0330f729c /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /vDisk ext4 defaults 0 0
[root@localhost ~]#
- 第一部分:/etc/sdb1 就是要挂载的分区
- 第二部分:/vDisk 就是挂载的目录
- 第三部分:ext4 是文件系统
- 第四部分:defaults 使用系统默认挂载参数
- 第五部分:0 决定 dump 命令在进行备份时是否要将这个分区存档 默认 0
- 第六部分:0 系统启动时是否对这个分区进行 fsck,1 保留给根分区,2 其他分区检查完根分区检查,0 不检查
磁盘检查:fsck、badblocks
当磁盘出现逻辑错误时,可以使用 fsck 尝试修复,比如机器突然断电
fack -t ext4 /dev/sdb1
※ 磁盘需要处于未挂载状态,否则会造成文件系统损坏
badblocks -v /dev/sdb1
主要是用来检测磁盘坏道,如果出现坏道一般都是在分区的时候绕过坏道不适用,但是现在都是固态硬盘了,哪还有坏道,所以这个命令不常用
Linux 逻辑卷
- 物理卷(PV:Physical Volume):物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。
- 卷组(VG:Volume Group):卷组建立在物理卷之上,它由一个或多个物理卷组成。即把物理卷整合起来提供容量分配。一个LVM系统中可以只有一个卷组,也可以包含多个卷组。
- 逻辑卷(LV:Logical Volume):逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小可以伸缩。
给机器再添加一个 20G 的磁盘设备
[root@localhost ~]# fdisk -l
......(略去部分内容)......
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
......(略去部分内容)......
查看一下叫 sdc 接下来就在 sdc 中创建逻辑卷
创建并查询物理卷:pvcreate、pvdisplay
先把 sdc 分成 4 个区
[root@localhost ~]# fdisk /dev/sdc
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+5G
分区 3 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (31459328-41943039,默认为 31459328):
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l
......(略去部分内容)......
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0xe9c33061
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 83 Linux
/dev/sdc2 10487808 20973567 5242880 83 Linux
/dev/sdc3 20973568 31459327 5242880 83 Linux
/dev/sdc4 31459328 41943039 5241856 83 Linux
......(略去部分内容)......
创建的分区 Id 是 83,System 是 Linux,我们需要的 Id 是 8e,System 是 Linux LVM,所以需要使用 fdisk 进行修改
[root@localhost ~]# fdisk /dev/sdc
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):1
Hex 代码(输入 L 列出所有代码):L
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):4
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l
......(略去部分内容)......
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0xe9c33061
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 8e Linux LVM
/dev/sdc2 10487808 20973567 5242880 8e Linux LVM
/dev/sdc3 20973568 31459327 5242880 8e Linux LVM
/dev/sdc4 31459328 41943039 5241856 8e Linux LVM
......(略去部分内容)......
命令 t 是修改分区 Id,修改完成后变成了我们想要的分区 Id 和 System
接下来使用命令 pvcreate 将 sdc1、sdc2 创建为 PV
[root@localhost ~]# pvcreate /dev/sdc1
WARNING: dos signature detected on /dev/sdc1 at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sdc1.
Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# pvcreate /dev/sdc2
Physical volume "/dev/sdc2" successfully created.
pvscan 和 pvdisplay 可以查看系统中的 PV,pvdisplay 显示的信息比较详细
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4863
Free PE 0
Allocated PE 4863
PV UUID LMqaC3-JPQ0-0ozj-jY1L-g1If-Luc2-KLZWab
"/dev/sdc1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID L2QBF9-39j1-ID2l-4du8-ihkW-V31T-8pTbic
"/dev/sdc2" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc2
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID d8E3YI-lR7W-RtDc-9hlQ-Nkg7-ak1O-w6aerK
创建并查询卷组:vgcreate、vgdisplay
使用 sdc1 和 sdc2 创建一个名为 sdc12VG 的卷组
[root@localhost ~]# vgcreate sdc12VG /dev/sdc1 /dev/sdc2
Volume group "sdc12VG" successfully created
vgscan 和 vgdisplay 可以查看系统中的 VG,vgdisplay 显示的信息比较详细
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name sdc12VG
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 9.99 GiB
PE Size 4.00 MiB
Total PE 2558
Alloc PE / Size 0 / 0
Free PE / Size 2558 / 9.99 GiB
VG UUID Pwde8V-mQd6-hYZg-KYOk-vYID-bCny-CjfzvZ
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID u8KSzs-d1kF-Zl7n-pYHf-ecdr-SV0E-gN84ZL
扩容卷组:vgextend
将 sdc3 加入到 sdc12VG 中,先将 sdc3 创建成 PV,再添加到 sdc12VG
[root@localhost ~]# pvcreate /dev/sdc3
Physical volume "/dev/sdc3" successfully created.
[root@localhost ~]# vgextend sdc12VG /dev/sdc3
Volume group "sdc12VG" successfully extended
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name sdc12VG
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <14.99 GiB
PE Size 4.00 MiB
Total PE 3837
Alloc PE / Size 0 / 0
Free PE / Size 3837 / <14.99 GiB
VG UUID Pwde8V-mQd6-hYZg-KYOk-vYID-bCny-CjfzvZ
......(略去部分内容)......
发现 VG SIZE 增加了 5G
创建并查询逻辑卷:lvcreate、lvdisplay
-L
指定逻辑卷大小-n
指定逻辑卷名字- 然后自定卷组
[root@localhost ~]# lvcreate -L 2G -n sdc12LV sdc12VG
Logical volume "sdc12LV" created.
查看 LV 也是分为 lvscan 和 lvdisplay
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/sdc12VG/sdc12LV
LV Name sdc12LV
VG Name sdc12VG
LV UUID oc08TQ-GdMa-ZipX-9PfK-R0FV-NvMa-Y1kM6l
LV Write Access read/write
LV Creation host, time localhost, 2020-09-26 12:32:13 +0800
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
......(略去部分内容)......
逻辑卷创建完后还不能使用,还需要创建文件系统以及挂载才可以使用
[root@localhost ~]# mkdir /vDisk1
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var vDisk vDisk1
[root@localhost ~]# mkfs.ext4 /dev/sdc12VG/sdc12LV
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]# mount /dev/sdc12VG/sdc12LV /vDisk1
[root@localhost ~]# mount | grep vDisk
/dev/sdb1 on /vDisk type ext4 (rw,relatime,seclabel,data=ordered)
/dev/mapper/sdc12VG-sdc12LV on /vDisk1 type ext4 (rw,relatime,seclabel,data=ordered)
硬链接和软连接
- 硬链接的作用是允许一个文件拥有多个有效路径名,删除一个链接不会影响索引结点本身和其它链接,只有当最后一个链接删除时文件数据块及目录的链接才会被释放,也就是说文件真正删除的前提所有相关的硬链接均被删除
- 不允许给目录创建硬链接
- 只有在同一文件系统中的文件之间才能创建链接,即不同分区上的两个文件之间不能建立硬链接
- 软连接是一个包含了另一个文件路径名的文件,可以指向任意文件或目录,也可以跨不同的文件系统,和 Windows 下的快捷方式类似,删除软连接不会影响源文件,删除源文件则软连接则会“断链”
创建硬链接:ln
首先我们有一个文件 file.txt 和两个目录 dir1、dir2
[root@localhost ln]# ls
dir1 dir2 file.txt
[root@localhost ln]# cat file.txt
Hello World!
[root@localhost ln]# ls dir1
[root@localhost ln]# ls dir2
[root@localhost ln]#
可以看出 file.txt 中只有一行 Hello World!,dir1 和 dir2 都是空的
接下来我们就在 dir1 和 dir2 中建立 file.txt 的硬链接
[root@localhost ln]# ln file.txt dir1/f1
[root@localhost ln]# ln file.txt dir2/f2
[root@localhost ln]# ls
dir1 dir2 file.txt
[root@localhost ln]# ls dir1
f1
[root@localhost ln]# ls dir2
f2
[root@localhost ln]# cat dir1/f1
Hello World!
[root@localhost ln]# cat dir2/f2
Hello World!
[root@localhost ln]#
可以看出硬链接创建成功了
我们尝试删除和修改一下
[root@localhost ln]# rm file.txt
rm:是否删除普通文件 "file.txt"?y
[root@localhost ln]# ls
dir1 dir2
[root@localhost ln]# ls dir1
f1
[root@localhost ln]# cat dir1/f1
Hello World!
[root@localhost ln]# cat dir2/f2
Hello World!
[root@localhost ln]# vi dir1/f1
[root@localhost ln]# cat dir1/f1
Hello World 666!
[root@localhost ln]# cat dir2/f2
Hello World 666!
删掉一个,其余还存在,修改一个,其余也变
创建软连接:ln -s
准备和之前一样的文件
[root@localhost ln]# ls
dir1 dir2 file.txt
[root@localhost ln]# cat file.txt
Hello World!
[root@localhost ln]# ls dir1
[root@localhost ln]# ls dir2
[root@localhost ln]#
创建软连接
[root@localhost ln]# ln -s file.txt dir1/f1
[root@localhost ln]# ln -s file.txt dir2/f2
[root@localhost ln]# ls
dir1 dir2 file.txt
[root@localhost ln]# ls dir1
f1
[root@localhost ln]# ls dir2
f2
[root@localhost ln]# ll dir1
总用量 0
lrwxrwxrwx. 1 root root 8 9月 26 13:00 f1 -> file.txt
[root@localhost ln]# ll dir2
总用量 0
lrwxrwxrwx. 1 root root 8 9月 26 13:00 f2 -> file.txt