Linux学习笔记(第八课)

第六章、存储结构与管理硬盘
6.1、从“/”开始
Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS:Filesystem Hierarchy Standard)采用倒树状结构来存放文件,以及定义了常见目录的用途。
表6-1 Linux系统中常见的目录名称以及相应内容

目录名称 应放置文件的内容
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户主目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常变化的文件,如日志
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

6.2 物理设备的命名规则
表6-2 常见的硬件设备及其文件名称

硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-z]
virtio设备 /dev/vd[a-z]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0

6.3 文件系统与数据资料
Ext2:最早可追溯到1993年,是Linux系统第一个商业级文件系统,基本沿袭的是Unix文件系统的设计标准。但由于不包含读写日志功能,数据丢失可能性很大,能不用就不要用,或者顶多建议用于SD存储卡或U盘。

Ext3:是一款日志文件系统,它会把整个硬盘的每个写入动作的细节都预先记录下来,然后再实际操作,以便在发生异常宕机后能回溯追踪到被中断的部分。Ext3能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。

Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。现在很多主流服务器也会使用。

XFS:是一种高性能的日志文件系统,而且是RHEL 7/8中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。

 

6.4 挂载硬件设备
fdisk命令用新建、修改及删除磁盘的分区表信息,英文全称为:“format disk”,语法格式为:“fdisk 磁盘名称”
表6-5 fdisk命令中的参数以及作用
参数 作用
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 改变某个分区的类型
p 查看分区表信息
w 保存并退出
q 不保存直接退出

mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”
表6-3 mount命令中的参数以及作用
参数 作用
-a 挂载所有在/etc/fstab中定义的文件系统
-t 指定文件系统的类型

umount命令用于卸载设备或文件系统,英文全称为:“un mount”,语法格式为:“umount [设备文件/挂载目录]”

df命令用于已挂载的磁盘空间使用情况,英文全称为:“disk free”,语法格式为:“df -h”
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 889M 0 889M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 9.3M 894M 2% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 5.5G 12G 33% /
/dev/sdb1 5.0G 68M 5.0G 2% /mnt/desk1
/dev/sdb2 3.0G 54M 3.0G 2% /mnt/desk2
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 181M 16K 181M 1% /run/user/42
tmpfs 181M 4.0K 181M 1% /run/user/0

du命令用查看分区或目录所占用的磁盘容量大小,英文全称为:“Disk Usage”,语法格式为:“du -sh 目录名称”
[root@localhost etc]# pwd
/etc
[root@localhost etc]# du -sh
31M .


lsblk命令用于已挂载的磁盘空间使用情况,英文全称为:“list block id”
[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
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part /mnt/desk1
├─sdb2 8:18 0 3G 0 part /mnt/desk2
└─sdb3 8:19 0 2G 0 part
sr0 11:0 1 6.6G 0 rom

blkid命令用于显示设备的属性信息,英文全称为:“block id”,语法格式为:“blkid [设备名]”
推荐用UUID(通用唯一识别码)进行挂载操作,这是一串用于标识每块独立硬盘的字符串,具有唯一性及稳定性,特别适合挂载网络设备时使用。
[root@localhost mnt]# blkid
/dev/sda1: UUID="7e3851e0-2b41-45d5-bd50-085d9a1acd83" TYPE="xfs" PARTUUID="37f63a76-01"
/dev/sda2: UUID="SKI7ei-dSvV-ABMj-AYHG-V42j-0hoa-vbdQ3l" TYPE="LVM2_member" PARTUUID="37f63a76-02"
/dev/sr0: UUID="2019-04-04-08-40-23-00" LABEL="RHEL-8-0-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="0da1aba4" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="4ee24e0e-968c-46e0-b93f-45145d1066c2" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="35d3db3e-dd82-42a4-96c6-da96fd3edb9b" TYPE="swap"


fdisk 分区
mkfs 格式化分区(mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.fat mkfs.minix mkfs.msdos mkfs.vfat mkfs.xfs)
mount 挂载
umount 取消挂载

fdisk -l
df -h
blkid

+++++++++++++++++++++++++++++++++++++++++++++、
[root@localhost /]# fdisk /dev/sdb

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

Command (m for help): m

Help:

DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag

Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition

Misc
m print this menu
u change display/entry units
x extra functionality (experts only)

Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file

Save & Exit
w write table to disk and exit
q quit without saving changes

Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table

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-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +5G

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

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost /]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1310720, 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@localhost /]# fdisk /dev/sdb

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 (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 (10487808-41943039, default 10487808):
Last sector, +sectors or +size{K,M,G,T,P} (10487808-41943039, default 41943039): +3G

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

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

[root@localhost /]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=786432, 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@localhost /]# fdisk /dev/sdb
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 (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 (16779264-41943039, default 16779264):
Last sector, +sectors or +size{K,M,G,T,P} (16779264-41943039, default 41943039): +2G

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

Command (m for help): w
The partition table has been altered.
Syncing disks。
[root@localhost /]# mkfs.xfs /dev/sdb3
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=524288, 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@localhost /]#

[root@localhost /]# mount /dev/sdb1 /mnt/desk1
[root@localhost /]# mount /dev/sdb2 /mnt/desk2
[root@localhost mnt]# mount /dev/sdb3 /mnt/desk3
[root@localhost mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 889M 0 889M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 9.3M 894M 2% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 5.5G 12G 33% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 181M 16K 181M 1% /run/user/42
tmpfs 181M 4.0K 181M 1% /run/user/0
/dev/sdb1 5.0G 68M 5.0G 2% /mnt/desk1
/dev/sdb2 3.0G 54M 3.0G 2% /mnt/desk2
/dev/sdb3 2.0G 47M 2.0G 3% /mnt/desk3

[root@localhost mnt]# blkid
/dev/sda1: UUID="7e3851e0-2b41-45d5-bd50-085d9a1acd83" TYPE="xfs" PARTUUID="37f63a76-01"
/dev/sda2: UUID="SKI7ei-dSvV-ABMj-AYHG-V42j-0hoa-vbdQ3l" TYPE="LVM2_member" PARTUUID="37f63a76-02"
/dev/sr0: UUID="2019-04-04-08-40-23-00" LABEL="RHEL-8-0-0-BaseOS-x86_64" TYPE="iso9660" PTUUID="0da1aba4" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="4ee24e0e-968c-46e0-b93f-45145d1066c2" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="35d3db3e-dd82-42a4-96c6-da96fd3edb9b" TYPE="swap"
/dev/sdb1: UUID="6a4b13b4-2954-415f-ab98-d5892fc33d53" TYPE="xfs" PARTUUID="6b1f6d5c-01"
/dev/sdb2: UUID="ef85fccc-bb69-4883-a820-83dbc9a45834" TYPE="xfs" PARTUUID="6b1f6d5c-02"
/dev/sdb3: UUID="752c8aa3-c68d-4f83-839a-9a688ea04036" TYPE="xfs" PARTUUID="6b1f6d5c-03"

推荐用UUID(通用唯一识别码)进行挂载操作,这是一串用于标识每块独立硬盘的字符串,具有唯一性及稳定性,特别适合挂载网络设备时使用。
[root@localhost /]# vim /etc/fstab
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=7e3851e0-2b41-45d5-bd50-085d9a1acd83 /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /mnt/desk1 xfs defaults 0 0
UUID=ef85fccc-bb69-4883-a820-83dbc9a45834 /mnt/desk2 xfs defaults 0 0

(只在fstab开机自动挂载里写了sdb1和sdb2,sdb3只挂载,没写到fstab里,重启验证:)
[root@localhost mnt]# reboot
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 889M 0 889M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 9.3M 894M 2% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 5.5G 12G 33% /
/dev/sdb1 5.0G 68M 5.0G 2% /mnt/desk1
/dev/sdb2 3.0G 54M 3.0G 2% /mnt/desk2
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 181M 16K 181M 1% /run/user/42
tmpfs 181M 4.0K 181M 1% /run/user/0
开机自动挂载了sdb1和sdb2,sdb3未挂载,因为没写到fstab里,
++++++++++++++++++++++++++++++++++++++++++++++
必考
6.6添加交换分区
mkswap命令用于对新设备做交换分区格式化,英文全称为:“make swap”,语法格式为:“mkswap 设备名称
swapon命令用于激活新的交换分区设备,英文全称为:“swap on”,语法格式为:“swapon设备名称”

[root@localhost ~]# fdisk /dev/sdb

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 (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): //敲击回车即可
First sector (10487808-41943039, default 10487808): //敲击回车即可
Last sector, +sectors or +size{K,M,G,T,P} (10487808-41943039, default 41943039): +2G //输入需要的大小

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

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82

Changed type of partition 'Empty' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x37eda2f1

Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 10487807 10485760 5G 83 Linux
/dev/sdb2 10487808 14682111 4194304 2G 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered.
Syncing disks.

[root@localhost ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=8e7d3710-139e-40ac-b379-a2ae6d11a35b
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1806 710 630 9 465 919
Swap: 2047 0 2047
[root@localhost ~]# swapon /dev/sdb2
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1806 712 627 9 465 917
Swap: 4095 0 4095

[root@localhost ~]# vim /etc/fstab
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=7e3851e0-2b41-45d5-bd50-085d9a1acd83 /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /geely xfs defaults 0 0
/dev/sdb2 swap swap defaults 0 0
[root@localhost ~]# reboot
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1806 698 675 9 432 932
Swap: 4095 0 4095
[root@localhost ~]#
+++++++++++++++++++++++++++++++++++++++++++
6.7 磁盘容量配额

xfs_quota命令用于管理设备的磁盘容量配额,语法格式为:“xfs_quota [参数] 配额 文件系统”

edquota命令用于管理系统的磁盘配额,英文全称为:“edit quota”,语法格式为:“edquota [参数] 用户名”
表6-6 edquota命令中可用的参数以及作用
参数 作用
-u 对某个用户进行设置
-g 对某个用户组进行设置
-p 复制原有的规则到新的用户/组
-t 限制宽限期限

posted @ 2021-04-22 21:10  bing2215  阅读(260)  评论(0编辑  收藏  举报