Linux学习笔记(5)——Linux磁盘与文件系统管理
Linux磁盘与文件系统管理
一、认识Linux文件系统
1.1 文件系统特性
- Linux的正统文件系统为ext2(Linux second Extended file system,ext2fs)
- 称一个可被挂载的数据为一个文件系统,而不是一个分区
- 格式化(ext2索引式文件系统)
超级区块
:记录此文件系统的整体信息,包括inode与数据区块的总量、使用量、剩余量,以及文件系统的格式与相关信息等inode
:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的区块号码数据区块
:实际记录文件的内容,若文件太大,会占用多个区块- 注意:文件系统一开始便规划好inode与数据区块,除非重新格式化(或resize2fs),否则不再变动。
碎片整理:文件写入的区块太过于离散,此时文件读取的性能将会变得很差。通过碎片整理将同一文件所属的区块集合在一起。
1.2 与目录树的关系
文件系统会分配一个inode与至少一块区块给该目录。inode记录该目录的相关权限与属性,区块记录在该目录下的文件的文件名与inode号码。
[admin@localhost ~]$ ls -li
total 0
34088715 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Desktop
34088739 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Documents
52584174 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Downloads
52584175 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Music
2444199 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Pictures
18905843 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Public
2444198 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Templates
18905844 drwxr-xr-x. 2 admin admin 6 Nov 2 09:24 Videos
1.3 挂载点的意义
【挂载】:将文件系统与目录树结合的操作。
挂载点一定是目录,该目录为进入该文件系统的入口。
二、文件系统的简单操作
2.1 磁盘与目录的容量
df
:列出文件系统的整体磁盘使用量du
:查看文件系统的磁盘使用量(常用在查看目录所占磁盘空间)
[admin@localhost ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 15M 472M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 4.8G 13G 29% /
/dev/sda1 1014M 155M 860M 16% /boot
tmpfs 98M 68K 98M 1% /run/user/1000
tmpfs 98M 0 98M 0% /run/user/0
[root@localhost admin]# du -sm /*
0 /bin
123 /boot
0 /dev
43 /etc
4 /home
0 /lib
0 /lib64
0 /media
0 /mnt
0 /opt
du: cannot access ‘/proc/95450/task/95450/fd/4’: No such file or directory
du: cannot access ‘/proc/95450/task/95450/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/95450/fd/4’: No such file or directory
du: cannot access ‘/proc/95450/fdinfo/4’: No such file or directory
0 /proc
4 /root
du: cannot access ‘/run/user/1000/gvfs’: Permission denied
15 /run
0 /sbin
0 /srv
0 /sys
1 /tmp
3938 /usr
711 /var
2.2 硬链接与符号链接:ln
- 硬链接(Hard Link):多个文件名对应到同一个inode号码,在某个目录下新增一条文件名链接到某inode号码的关联记录
- 不能跨文件系统
- 不能链接目录
- 符号链接(Symbolic Link):建立一个独立的文件,这个文件会让数据的读取指向它链接的那个文件的文件名
ln #硬链接
ln -s #软链接
2.3 磁盘的分区、格式化、检验与挂载
在系统内新增一块磁盘需要做的是:
- 对磁盘进行划分,以建立可用的硬盘分区
- 对硬盘分区进行格式化,以建立系统可用的文件系统
- 若要仔细一点,对文件系统进行检验
- 在Linux系统上,需要建立挂载点(亦即是目录),并将它挂载上来
-
lsblk
列出系统上所有磁盘列表(list block device)[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] sr0 11:0 1 1024M 0 rom [root@localhost ~]# lsblk -ip /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 8:0 0 20G 0 disk |-/dev/sda1 8:1 0 1G 0 part /boot `-/dev/sda2 8:2 0 19G 0 part |-/dev/mapper/centos-root 253:0 0 17G 0 lvm / `-/dev/mapper/centos-swap 253:1 0 2G 0 lvm [SWAP]
-
blkid
列出设备的UUID等参数[root@localhost ~]# blkid /dev/mapper/centos-root: UUID="8be593c4-2aa2-444f-a39b-0e8fde75f9f7" TYPE="xfs" /dev/sda2: UUID="BXnvwk-P1RK-ghgt-0IqR-bOPd-z8Ej-LOeRjo" TYPE="LVM2_member" /dev/sda1: UUID="eebe114b-6b2a-4f5e-9ce0-c18b5308ed3e" TYPE="xfs" /dev/mapper/centos-swap: UUID="206196d2-154b-42dc-ae15-d2854d4687bb" TYPE="swap"
-
parted
列出磁盘的分区表类型与分区信息[root@localhost ~]# parted /dev/sda print Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 1075MB 1074MB primary xfs boot 2 1075MB 21.5GB 20.4GB primary lvm
-
磁盘分区
gdisk/fdisk
-
磁盘格式化
- XFS文件系统
mkfs.xfs
- 其他文件系统
mkfs
- XFS文件系统
-
挂载
mount