一、磁盘管理及维护
1、磁盘基础知识
1.1、磁盘常见参数
- 磁头(head)
- 磁道(track)
- 柱面(cylinder)
- 扇区(sector)
- 圆盘(platter)
1.2、磁盘容量=磁头数 * 磁道数(柱面)数 * 每道扇形数*每扇区字节数
每个扇区存放512个字节
1.3、磁盘文件名:
- /dev/sd [a-p] [1-128]
- /dev/hd[]
- /dev/vd [] []
1.4、分区命令
fdisk 、dev/sd*
1.5、格式化:
- mkfs.ext4 /dev/sda*
- mkfs.xfs /dev/sda*
2、文件系统管理类命令
2.1、mkfs(该命令用来在特定的分区创建linux文件系统)
- 常见的文件系统
- ext2,ext3,ext4
- xfs
- btrfs
- mkfs.ext2 分区
- -t 指定创建的文件系统类型
mkfs -t ext4 = mkfs.ext4 - -b 创建文件系统指明块大小
1024 2048 4096 - -L label 指明卷标
- -j 创建有日志功能的文件系统
- -i 指明inode与字节的比率
- -N 直接指定创建的文件系统的inode数量
- -m 指定预留空间
2.2、 e2label (设定与查看卷标)
- 设定 e2label device label
- 查看 e2label device
2.3、fsck.ext2(检查文件系统并尝试修复错误,文件不能挂载)
- -a:自动修复文件系统,不询问任何问题
- -A:依照 /etc/fstab 配置文件的内容,检查文件内所列的全部文件系统
- -C 显示检查的进度
- -c:检查坏块,并将它们添加到坏块列表
- -d 详细显示指令执行过程,便于排错或分析程序执行的情形
- -P:当搭配"-A"参数使用时,则会同时检查所有的文件系统
2.4、查看属性的工具
- dumpe2fs
显示ext2/ext3/ext4文件系统信息 - tune2fs
- 修改文件系统属性(ext)
- 修改文件系统的块大小
- -l 查看块内容
- -j 修改指定的文件系统类型
- -L 修改卷标
- -m 调整预留空间百分比
- resize2fs:
调整 ext系列的文件系统的大小 - -f 强制执行
- -M 将文件系统缩小到最小值
- -P 显示文件系统的最小值
- e2fsck:
磁盘修复,修复前需要卸载挂载点 - -a 检查分区,发现问题可直接自动修复
- -b 设定superlock位置
- -B size 设定区块大小
- -c 检查是否有坏道
- -f 强制检查
- blkid 获取文件系统类型,UUID ,卷标
blkid device - -U UUID 定位设备
- -L lable 定位设备
2.5、交换分区
- fdisk device
t 82 - mkswap 格式化
- dd if=/dev/zero of=/dir/filename bs=1[K,M,G] count =N
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
if=文件名:输入文件名,缺省为标准输入。即指定源文件。
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。 - /etc/fstab(swap挂载)
UUID=“4a3d5ab7-4e3e-4baa-a3a3-f0386901a12f” swap swap defaults 0 0 - swapon -a 根据文件挂载swap分区
- swapon -s 查看swap挂载情况
- swapoff 关闭swap
2.6、mount&umount
- mount -t 系统类型 -o 选项 设备 挂载点
---------------------ro
---------------------rw
---------------------acl - umount 设备
umount 挂载点 - 查看哪些进程占用挂载点
lsof 挂载点
fuser -v 挂载点 - 终端挂载点使用
fuser -km 挂载点
2.7、lsof
- lsof:列出所有被打开的文件,进程
- lsof -c process 显示进程打开的文件
- lsof -c -p # 进程号:列出进程#打开的文件
- lsof -i 显示符合条件的进程
- lsof -u 用户名
- losf -s 列出文件大小
- lsof -i tcp/udp
- lsof -i 8080
2.8、df 显示磁盘分区上可用的空间
- -h 以KB MB GB 为单位显示 1024为单位
- -H 以1000为单位显示而不是1024
- -i 显示inode使用情况
2.9、du 显示每个文件或目录大小
- -h 以K M G为单位显示
- -c 显示目录中文件大小,并且显示总和
- -s 只分别计算命令列中每个参数所占的总用量
- -S 不包括子目录的占用量
- -k 等于–block-size=1K
- -m 等于–block-size=1M
2.10、挂载配置文件
-
/etc/fstab
挂载点事先存在
根目录首先挂载
挂载点同时间只能挂载一个 -
第一列:device设备文件
-
UUID(使用好处)
它是真正的唯一标志符
设备名并非总是不变的
ubuntu中的许多关键功能现在开始依赖于UUID -
设备文件
-
卷标
-
第二列:挂载点
-
第三列:filesystem: xfs ext4 swap iso96660
-
第四列:文件系统参数 defaults
-
第五列:能不能备份
0:不备份
1:每天备份
2:不定期备份 -
第六列:是否校验
0 不校验
1 最先校验
2 在1之后校验
2.11、fdisk
- n 添加一个新分区
- e 扩展分区
- p 可以列出详细的分区情况
(选择分区时)主分区 - t 设置分区号
- w 保存退出
- q 退出不保存
2.12、linux添加新磁盘和创建分区
- fdisk /dev/sda 命令对/dev/sda进行分区
- n 添加一个新的分区
- p 创一个主分区
- e 创建一个扩展分区
(扩展分区最多有一个,逻辑分区最少有0个最多有无数个) - w 保存退出
- fdisk -l 查看分区
- mkfs ext4 /dev/sda4 给它设置ext4的文件系统,并格式化
出现/dev/sda4: Device or resource busy,df -h,查看挂载情况,umount取消挂载 - partprobe or kpartx or reboot 进行加载或者重启
- mount /dev/sda4 /mnt/ 进行挂载
- 在/mnt下创建文件,可查看,取消挂载后,在/mnt下找不到文件
2.113、创建swap分区(事先创建好一个分区)
- fdisk /dev/sda 命令对/dev/sda进行分区
- t 修改分区号
- 输入修改的分区(1-4)
- 输入swap的分区号82(十六进制)
- w保存、p列出详细的分区情况,查看修改情况、q退出
- mkswap /dev/sda4 格式化swap分区
出现/dev/sda4: Device or resource busy,df -h,查看挂载情况,umount取消挂载 - partprobe or kpartx or reboot 进行加载或者重启
- blkid 查看创建的swap分区的UUID号
- vim /etc/fstab 使用UUID 号对swap分区进行开机挂载
- swapon -a 根据文件挂载swap分区
- swapon -s 查看swap挂载情况
2.14、buffers与cached
- buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages,在第一次运行时系统会把它们暂时缓存在一个高速的存储区域,以后再用时就直接从这个区域读取数据供程序使用,存取这些数据的介质,因其读写速度比硬盘和内存要快得多,所以,buffers的大小对电脑运行速度的影响是很大的,但这些数据重启电脑或关机后就会自动消失。
- cached是用来给文件做缓冲,而cached是指缓存的数据,是真正意义上的实在东西,例如你常用的程序,由于一些数据是这些程序运行经常要使用到的,系统就会把它们形成文件,缓存到一个特定的位置,下次你再运行该程序时,就会自动到缓存的位置读取数据供程序运行使用,存储这些数据的区域是在电脑的硬盘上,理论上讲读写速度是不变的,只是节省了寻找这些数据的时间而也,这样也可间接地提高了电脑的运行效率。
- 那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件。
2.15、blkid 查询所有的设备的文件系统类型
- blkid
列出当前系统中所有已挂载文件系统的类型 - blkid -s UUID /dev/sda5
显示指定设备 UUID - blkid -s UUID
显示所有设备 UUID - blkid -o list
以列表方式查看详细信息