磁盘管理
1. 磁盘结构
1.1 设备文件
设备文件 :关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
设备文件格式
- 块设备 :存取单位“块”,磁盘
- 字符设备:存取单位“字符”,键盘
[root@centos7 ~]#ll /dev/sda
brw-rw----. 1 root disk 8, 0 Aug 18 08:59 /dev/sda
# 其中8表示主设备号(主要类型):major number
# 其中0表示次设备号(次要类型):minor number
1.1.1 创建设备文件
mknod 文件名 类型(c|b)主设备号 次设备号
注意:主和次设备号一样的,设备文件是一样的
1.2 磁盘类型
硬盘主要分为机械硬盘和固态硬盘。
机械硬盘(HHD):即传统普通硬盘,主要由:盘片,磁头,盘片转轴即控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成
固态硬盘(SSD):用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成.
固态硬盘的优缺点:
相较于机械,固态在防震抗摔,传输速度,功耗,重量,噪音上游明细优势,固态传输速率是机械的2倍
相较于固态,机械在价格,容量占有绝对的优势
硬盘在系统中的存储格式
[root@centos7 ~]#ll /dev/sda
brw-rw----. 1 root disk 8, 0 Aug 18 08:59 /dev/sda
# 其中8表示主设备号(主要类型):major number
# 其中0表示次设备号(次要类型):minor number
1.2 硬盘的存储术语
head:磁头 此投诉=盘面数
track:磁道 磁道=柱面数
sector:扇区,512bytes
cylinder:柱面 1柱面=512sector、trackhead
1.2.1 识别硬盘类型
1表示机械
0表示固态
[root@centos7 ~]#lsblk -d -o name,rota
NAME ROTA
sda 1
sdb 1
sdc 1
sr0 1
[root@centos7 ~]#ls /sys/block/
sda sdb sdc sr0
[root@centos7 ~]#cat /sys/block/*/queue/rotational
1
1
1
1
2. 分区
分区以扇区为单位,那个扇区到那个扇区
分区的优点:
- 优化I/o性能
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同的文件系统
2.1 分区方式
主要由2种分区方式:MBR,GPT
2.1.1 MBR分区
MBR:使用32位表示扇区数,分区不超过2T
MBR分区中一个分区最多有4个主分区,也可以3主分区+1扩展分区(N个逻辑分区)
主和扩展分区对应1-4,逻辑分区从5开始
MBR分区结构
2.1.2 GPT分区
GPT:支持128分区,使用64位,支持8Z
用128位表示磁盘和分区,GPT分区表自动备份在头和尾2份,并有CRC校验位
GPT分区结构
- GPT头
- 分区表
- GPT分区
- 备份区域
2.2 BIOS和UEFI
BIOS是固化在电脑主板上的程序,主要用于开机系统自检和引导系统。目前新式电脑脚本都是UEFI启动
BIOS主要完成系统硬件自检和引导操作系统,操作系统开始启动后,BIOS的任务就完成了
UEFI统一的可扩展固件接口,是一种详细描述类型接口的标准,UEFI相对于一个轻量化的操作系统,通过了硬件和操作系统之间的接口,提供了图形化的操作界面,最关键是引入了GPT分区,支持2T以上的硬盘,硬盘分区不受限制
2.3 管理分区
列出块设备
lsblk
创建分区
fdisk 管理MBR分区
gdisk 管理GPT分区
parted 高级分区操作,可以是交互或非交互方式
重新设置内存中的内涵分区版本,试用于处Centos6之外的版本
partprobe
2.3.1 parted命令
格式
parted [选项] [设备[命令[参数]]]
注意:parted的操作是立即生效
parted /dev/sdb mklabel gpt|msdos 指定分区类型
parted /dev/sdb print 打印分区信息
parted /dev/sdb mkpart primary 1 200 (默认M) 分区
parted /dev/sdb rm 1 删除1分区
parted -l 列出所有硬盘分区
范例
[root@centos7 ~]#parted /dev/sdb mkpart primary 1 200
Information: You may need to update /etc/fstab.
[root@centos7 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 200MB 199MB xfs primary
[root@centos7 ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 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
Disk label type: dos
Disk identifier: 0x0001e2c0
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
[root@centos7 ~]#parted /dev/sdb rm 1
Information: You may need to update /etc/fstab.
[root@centos7 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
2.3.2 分区工具fdisk和gdisk
格式
fdisk -l 查看分区
fdisk 管理分区
gdisk相当于GPT的fdisk
子命令:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存退出
q 不保存退出
centos7,8同步分区表
partprobe
centos6同步分区表:通知内核重新读取硬盘分区表
#增加分区
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f
删除分区
partx -d --nr n-m /dev/DEVICE
查看内核是否已经识别新分区
cat /proc/partations
范例:非交互式创建分区
echo -e 'n\np\n\n\n+2G\n\w\n' |fdisk /dev/DEVICE
fdisk /dev/DEVICE <<EOF
>n
>p
>
>
>+2G
>w
>EOF
3. 文件系统
3.1 文件系统的概念
文件系统式操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等
支持的文件系统
/lib/modules/`uname -r`/kernel/fs
cat /proc/filesystems
3.2 文件系统的类型
3.3 文件系统的组成部分
- 内核中的模块:ext4 ,xfs ,vfat
- linux的虚拟文件系统:VFS
- 用户控件的管理工具:mkfs.ext4 ,mkfs.xfs ,mkfs.vfat
3.4 文件系统管理
3.4.1 创建文件系统
创建文件系统的工具
- mkfs命令
ext4
xfs
btrfs
vfat
常用选项:
-t {ext2|ext3|ext4|xfs} 指定文件系统类型
-b {1024|2048|4096} 指定块block大小
-L ‘LABEL’ 设置卷标
-j -t ext3,mkfs.ext3=makfs -t ext3 =mke2fs -j =mke2fs -t ext3
-i 为数据空间中每多少字节建立一个inode;不应该小于block大小
-N 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128–4096
-m 默认5%,为管理员预留空间占总空间的百分比
-O FEATURE[…] 启用指定特性
-O ^FEATURE 关闭指定特性
3.4.2 查看和管理分区信息
blkid可以查看块设备属性信息
格式
blkid [OPTION] [DEVICE]
常用选项
-U 根据指定的UUID来查找对应的设备
-L 根据指定的LABEL来查找对应的设备
elabel:管理ext系列文件系统的LABEL
e2label DEVICE [LABEL]
findfs:查找分区
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息:super block
-L ‘LABEL’ 修改卷标
-m 修改预留个管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用
-o 调整文件系统的默认挂载 -o ^acl
U 修改UUID
dumpe2fs:显示ext文件系统信息,将磁盘块分组管理
- -h 查看超级块信息,不显示分组信息
xfs_info 显示挂载或已挂载的xfs文件系统信息
xfs_info 设备名|挂载点
3.4.3 文件系统检测和修复
文件系统故障常发生于死机或者非正常关机之后,挂载为文件系统标记“no clean”
注意:移动不要在挂载状态下执行下面命令修复
fsck:
fsck.FS_TYPE
fsck -t FS_TYPE
注意:FS_TYPE一定要和分区上的文件系统相同
常用选项
-a 自动修复
-人交互式修复错误
e2fsck:ext系列文件专用的检测修复工具
-y 自动回答yes
-f 强制修复
-p 自动进行安全的修复文件系统
xfs_repair:xfs文件系统专用检测修复工具
-f 修复文件
-n 只检查
-d 允许修复只读的挂载设备,在单用户下修复/时使用,然后立即reboot
范例:修改破坏的ext文件系统
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 394228 0 394228 0% /dev
tmpfs 408620 0 408620 0% /dev/shm
tmpfs 408620 5780 402840 2% /run
tmpfs 408620 0 408620 0% /sys/fs/cgroup
/dev/sda2 104806400 2072528 102733872 2% /
/dev/sda3 52403200 398648 52004552 1% /data
/dev/sda1 999320 121872 808636 14% /boot
tmpfs 81724 0 81724 0% /run/user/0
[root@centos8 ~]#mount /dev/sdb1 /mnt
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 394228 0 394228 0% /dev
tmpfs 408620 0 408620 0% /dev/shm
tmpfs 408620 5784 402836 2% /run
tmpfs 408620 0 408620 0% /sys/fs/cgroup
/dev/sda2 104806400 2072568 102733832 2% /
/dev/sda3 52403200 398648 52004552 1% /data
/dev/sda1 999320 121872 808636 14% /boot
tmpfs 81724 0 81724 0% /run/user/0
/dev/sdb1 1998672 6144 1871288 1% /mnt
[root@centos8 ~]#dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00129676 s, 809 MB/s
[root@centos8 ~]#ls /mnt
[root@centos8 ~]#tune2fs -l /dev/sdb1
tune2fs 1.44.3 (10-July-2018)
tune2fs: Bad magic number in super-block while trying to open /dev/sdb1
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 394228 0 394228 0% /dev
tmpfs 408620 0 408620 0% /dev/shm
tmpfs 408620 5780 402840 2% /run
tmpfs 408620 0 408620 0% /sys/fs/cgroup
/dev/sda2 104806400 2072548 102733852 2% /
/dev/sda3 52403200 398648 52004552 1% /data
/dev/sda1 999320 121872 808636 14% /boot
tmpfs 81724 0 81724 0% /run/user/0
/dev/sdb1 73786976294838107984 73786976294836115456 1976144 100% /mnt
[root@centos8 ~]#umount /mnt
[root@centos8 ~]#e2fsck /dev/sdb1 -y
e2fsck 1.44.3 (10-July-2018)
/dev/sdb1 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: +(32768--33024) +(98304--98560) +(163840--164096) +(229376--229632) +(294912--295168)
Fix? yes
Free blocks count wrong for group #0 (24280, counted=24281).
Fix? yes
Free blocks count wrong (498131, counted=498132).
Fix? yes
Inode bitmap differences: Group 1 inode bitmap does not match checksum.
FIXED.
/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 11/131072 files (0.0% non-contiguous), 26156/524288 blocks
[root@centos8 ~]#tune2fs -l /dev/sdb1
tune2fs 1.44.3 (10-July-2018)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 4d6bf30f-e88e-459c-9dbb-77b3abf8e930
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
[root@centos8 ~]#mount /dev/sdb1 /mnt
[root@centos8 ~]#ls /mnt
lost+found
4. 挂载
4.1 挂载文件系统 mount
mount [-fnrsww] [-t vfstype ] [-o options] device mountpoint
device:指明挂载的设备
- 设备文件
- 卷标: -L
- UUID :-U
- 伪文件系统名称:proc,sysfs
mountpoint : 挂载点目录必须事先存在,建议使用空目录
mount 重用选项
-t fstype 指定要挂载的设备上的文件系统类型
-r 只读挂载
-w 读写挂载
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所支持的自动挂载设备(保存在/etc/fstab)
L 以卷标指定挂载设备
-U 以UUID指定要挂载的设备
-B 绑定目录到另一个目录上
-o options 多个选项使用逗号分隔
挂载规则:
- 一个挂载点同一时间只能挂载一个设备
- 一个挂载点同时挂载了多个设备,只能看到最后一个设备的数据,其他设备的数据将隐藏
- 一个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在的空目录
4.2 卸载文件系统 umount
卸载时:可使用设备,也可使用挂载点
umount 设备名|挂载点
4.3 查看挂载情况
查看挂载
#通过查看/etc/mtab文件显示当前已挂载的所有设备
mount
#查看内核追踪到的已挂载的所有设备
cat /proc/mounts
查看挂载点情况
findmnt 挂载点|设备
查看正在访问文件系统的进程
losf 挂载点
fuser -V 挂载点
终止所有正在访问指定文件系统的进程
fuser -km 挂载点
4.4 持久挂载
将挂载保存到/etc/fstab可以下次开机时,自动启用挂载
/etc/fstab 帮助 man 5 fstab
每行定义一个要挂载的文件系统,其中包括6项
- 要挂载的设备或伪文件系统
设备文件
LABEL
UUID
伪文件系统名称:proc,sysfs - 挂载点:事先存在的目录
- 文件系统类型
- 挂载选项:defaults ,acl ,bind
- 转储频率:0:不做备份 1:每天转储 2:每隔一天转储
- fsck检查文件系统的顺序:允许的数字是0 1 2
0:不自检 1:首先自检;一般只用rootfs才用 2:非rootfs使用
添加新的挂载项,需要执行下面命令生效
mount -a
5. 处理交换分区文件和分区
5.1 swap 介绍
swap交换分区是系统RAM的补充,swap分区支持虚拟内存,当没有足够的RAM保存系统处理的数据时会将数据写入swap分区,当系统缺乏swap空间时,内核会因RAM内存耗尽而终止进程。配置过多的swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存泄漏
注意:为优化性能,可以讲swap分布存放,或高性能磁盘存放
官方推荐系统swap分区
系统中的RAM量 | 推荐的swap分区 | 允许休眠的建议swap分区 |
---|---|---|
低于2GB | RAM量的2倍 | RAM量的三倍 |
2GB - 8GB | 等于RAM量 | RAM量的倍数 |
8GB - 64GB | 4GB到RAM量的0.5倍 | RAM量的1.5倍 |
超过64GB | 独立负载(至少4GB) | 不建议使用休眠功能 |
5.2 交换分区实现过程
1.创建交换分区或者文件
2.使用mkswap写入特殊签名
3. 在/etc/fastab文件添加适当的条目
4. 使用swapon -a 激活交换空间
启用swap分区
swapon [option] [device]
选项
-a 激活所有交换分区
-p priority 指定优先级,也可在/etc/fstab 在第4列指定:pri=
禁用swap分区
swapoff [option] [device]
范例:创建swap
#创建分区
[root@centos8 ~]#fdisk /dev/sdc
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 (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +2G
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): l
82 Linux swap / So c1 DRDOS/sec
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos8 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part /mnt
└─sdb2 8:18 0 3G 0 part
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 2G 0 part
sr0 11:0 1 6.7G 0 rom
#创建swap文件系统
[root@centos8 ~]#mkswap /dev/sdc1
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=bc73048d-f508-4d7a-a646-dc37eb931102
[root@centos8 ~]#blkid
/dev/sda1: UUID="99b1be82-b1e4-4f50-a094-cb8addda4565" TYPE="ext4" PARTUUID="a875a5cb-01"
/dev/sda2: UUID="2c9481a3-891b-48a7-b78f-6d5cda779b42" TYPE="xfs" PARTUUID="a875a5cb-02"
/dev/sda3: UUID="0d7156d8-588f-4b42-9a02-094c73581b16" TYPE="xfs" PARTUUID="a875a5cb-03"
/dev/sda5: UUID="61a1ee96-b3ba-4671-9e15-8bbeb5b505a1" TYPE="swap" PARTUUID="a875a5cb-05"
/dev/sdb1: UUID="4d6bf30f-e88e-459c-9dbb-77b3abf8e930" TYPE="ext4" PARTUUID="788e30fc-01"
/dev/sdb2: UUID="a49013aa-d9cc-40f0-a324-2c1d02e24fe6" TYPE="xfs" PARTUUID="788e30fc-02"
/dev/sdc1: UUID="bc73048d-f508-4d7a-a646-dc37eb931102" TYPE="swap" PARTUUID="3b08d8cd-01"
#挂载,永久挂载,写入/etc/fstab
UUID=2c9481a3-891b-48a7-b78f-6d5cda779b42 / xfs defaults 0 0
UUID=99b1be82-b1e4-4f50-a094-cb8addda4565 /boot ext4 defaults 1 2
UUID=0d7156d8-588f-4b42-9a02-094c73581b16 /data xfs defaults 0 0
UUID=61a1ee96-b3ba-4671-9e15-8bbeb5b505a1 swap swap defaults 0 0
UUID=bc73048d-f508-4d7a-a646-dc37eb931102 swap swap defaults 0 0
#激活swap分区
[root@centos8 ~]#swapon -a
[root@centos8 ~]#free -h
total used free shared buff/cache available
Mem: 1.9Gi 190Mi 1.6Gi 6.0Mi 110Mi 1.7Gi
Swap: 4.0Gi 0Mi 4.0Gi
[root@centos8 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part /mnt
└─sdb2 8:18 0 3G 0 part
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 2G 0 part [SWAP]
sr0 11:0 1 6.7G 0 rom
#查看swap分区
[root@centos8 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 5132 -2
/dev/sdc1 partition 2097148 0 -3
5.2.1 swap的优先级
可以指定swap分区0到32767的优先级,值越大优先级越高
如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减1
先添加的swap的优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(正数)永远高于核心指定的优先级
范例:修改swap分区的优先级
[root@centos8 ~]#cat /etc/fstab
#
UUID=2c9481a3-891b-48a7-b78f-6d5cda779b42 / xfs defaults 0 0
UUID=99b1be82-b1e4-4f50-a094-cb8addda4565 /boot ext4 defaults 1 2
UUID=0d7156d8-588f-4b42-9a02-094c73581b16 /data xfs defaults 0 0
UUID=61a1ee96-b3ba-4671-9e15-8bbeb5b505a1 swap swap defaults 0 0
UUID=bc73048d-f508-4d7a-a646-dc37eb931102 swap swap pri=100 0 0
[root@centos8 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 5132 -2
/dev/sdc1 partition 2097148 0 -3
[root@centos8 ~]#swapoff -a
[root@centos8 ~]#swapon -s
[root@centos8 ~]#swapon -a
[root@centos8 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -2
/dev/sdc1 partition 2097148 0 100
范例:以文件实现swap功能
[root@centos8 ~]#dd if=/dev/zero of=/swapfile bs=1M count=1024
[root@centos8 ~]#mkswap /swapfile
修改/etc/fstab 文件
/swapfile swap swap defaults 0 0
[root@centos8 ~]#chmod 600 /swapfile
[root@centos8 ~]#swapon -a
[root@centos8 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 2048 -2
/swapfile file 1048572 0 -3
5.2.2 swap的使用策略
/proc/sys/vm/swappiness 的值决定了当内存占用达到一定的百分时,会启用swap分区的空间
[root@centos8 ~]#cat /proc/sys/vm/swappiness
30
说明:内存在使用到100-30=70%的时候,就开始出现有交换分区的使用,简单地说这个参数定义了系统对swap的使用倾向,默认30,值越大表示月倾向使用swap,可以设为0.这样不会禁止对swap的使用,只是最大限度的降低使用swap的可能性
5.3 移动介质
挂载意味着使外来文件系统看起来如同是主目录树的一部分,所有移动介质页需要挂载,挂载点通常在/media或/mnt下
访问前,介质必须被挂载
摘除时,介质必须被卸载
按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB等等)
5.3.1 使用光盘
在图形环境下自动启动挂载/run/media/
手工挂载
mout /dev/cdrom /mnt/
操作光盘
eject 弹出光盘
eject -t 弹入光盘
创建ISO文件
cp /dev/sr0 /root/centos.iso
mkisofs -r -o /root/etc.iso /etc #来自于genisoimage包
范例:
[root@centos8 ~]#yum install genisoimage -y
[root@centos8 ~]#mkisofs -r -o /root/etc.iso /etc
root@centos8 ~]#umount /mnt
[root@centos8 ~]#mkdir /mnt/etc
[root@centos8 ~]#mount etc.iso /mnt/etc/
mount: /mnt/etc: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]#df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 394228 0 394228 0% /dev
tmpfs 408620 0 408620 0% /dev/shm
tmpfs 408620 5784 402836 2% /run
tmpfs 408620 0 408620 0% /sys/fs/cgroup
/dev/sda2 104806400 2097496 102708904 3% /
/dev/sda3 52403200 398648 52004552 1% /data
/dev/sda1 999320 121872 808636 14% /boot
tmpfs 81724 0 81724 0% /run/user/0
/dev/loop0 21622 21622 0 100% /mnt/etc
[root@centos8 ~]#ls /mnt/etc/
adjtime DIR_COLORS idmapd.conf modprobe.d
刻录光盘
wodim -v -eject centos.iso
5.3.1 USB介质
查看usb设备识别
lsusb #来自于usbuntils包
被内核探测为SCSI设备
/dev/sdaX、/dev/sdbX 或类似的设备文件
在图形界面下自动挂载在/run/media/
手动挂载
mount /dev/sdaX /mnt
范例:插入U盘的日志信息
[root@centos8 ~]#tail /var/log/messages -f
Apr 15 14:25:06 centos8 kerne1 : usb 4-1: new SuperSpeed Gen 1 USB devi ce number 2 using xhci_ _hcd
范例:格式化U盘为FAT32文件系统
[root@centos8 ~]#dnf -y insta11 dosfstools
[root@centos8 ~] #mkfs.vfat /dev/sdd1
mkfs.fat 4.1 ( 2017-01-24)
[ root@centos8 ~] #mount /dev/sdd1 /mnt
范例:查看USB设备
[root@centos8 ~]#yum -y instal1 usbutils
[root@centos8 ~]#lsusb
BuS 004 Device 002: ID 0951:1666 Kingston Techno1ogy DataTraveler 100 G3/G4/SE9
6. 磁盘常见工具
6.1 文件系统空间实际真正占用等信息查看工具 df
df [option] [file]
常用选项
-H 以10位单位
-T 文件类型
-h
-i inode号
P 以Posix兼容的格式输出
6.2 查看某目录总体空间实际占用状态 du
显示指定目录下面各个子目录的大小,单位KB
du [option] DIR
常用选项
-h
-s
–max-depth 指定最大目录层级
-x ,–one-file-system 忽略不在同一个文件系统的目录
[root@centos8 data]#du -sh *
72K script42
6.3 dd
格式
dd if=/dev/zero of=/data/script bs=1M count=200
常用选项
if=file 从文件中读取
of=file 写到文件中
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size 块大小
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个bs大小的块,读
seek=blocks 从开头忽略blocks个bs大小的块,写
count=n 复制n个块
范例:
#备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
#破坏MBR中的分区表
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
#将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/dev/sdy
#将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx of=/path/to/image
#备份/dev/sdx全盘数据,并利用gzi p压缩,保存到指定路
dd if=/dev/sdx | gzip >/path/to/image.gz
#将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/sdx
#将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
#将内存里的数据拷贝到root目录下的mem.bin文件
dd if=/dev/mem of=/root/mem.bin bs=1024
#拷贝光盘数据到root文件夹下,并保存为cdrom. iso文件
dd if=/dev/cdrom of=/root/cdrom.iso
#销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
#通过比较dd指令输出中命令的执行时间,即可确定系统最佳的blocksize大小
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
#测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
#测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/nu11
7. 范例:创建一个新分区
#添加新的硬盘
#读取新增的硬盘
echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan
#创建分区使用 fdisk或gdisk
fisk /dev/dvice
#同步分区
#centos7,8同步分区表
partprobe
#centos6同步分区表:通知内核重新读取硬盘分区表
#增加分区
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f
#检查分区是否同步
fdisk -l |lsblk
#创建文件系统
mkfs.ext4|mkfs.xfs
#查看文件系统信息
blkid
#挂载
#创建一个空目录
mkdir
mount 设备 挂载点
#永久挂载,写入/etc/fstab