磁盘管理_马哥sre课程笔记

一.磁盘管理

添加磁盘小技巧:重要小技巧哟

#添加新硬盘的操作
echo "- - -" > /sys/class/scsi_host/host0/scan;
echo "- - -" > /sys/class/scsi_host/host1/scan;
echo "- - -" > /sys/class/scsi_host/host2/scan;

块设备的字符设备

#块设备 b开头
[root@centos7 ~]# ll  /dev/sda
brw-rw----. 1 root disk 8, 0 810 14:17 /dev/sda

#字符设备c开头
[root@centos7 ~]# ll /dev/null
crw-rw-rw-. 1 root root 1, 3 810 14:17 /dev/null

创建这些设备的命令 mknod,不太用的.

mknod /dev/null-device  1 3 #不太用

1.1 分区mbr&gpt

  • mbr:一个分区最大2个T,现在场景越来越大,不够的.
  • gpt:分区支持128个分区,一个分区最大8Z-64Z,(与快大小有关)

mbr的分区备份,还原

dd if=/dev/sda of=/dev/mbr bs=1 count=64 skip=446
ll  /data/mbr #这个准备备份到异地.
hexdump -C /data/mbr #查看内容和hexdump -C /data/sda -n 512

#搞破坏,破坏分区表
dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446 

#进入救援模式,把备份mbr拷贝过来
dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
sync #记得一下

1.2 BIOS和UEFI

  • bios: 太小,不知道图形化.不能支持多国家语言.不直接支持gpt分区.所以win10安装的时候需要弄一下硬盘,把它变成gpt分区
  • uefi:可以各种骚操作.

1.3 管理分区

查看分区lsblk

[root@centos7 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   16G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   15G  0 part
  ├─centos-root 253:0    0 13.4G  0 lvm  /
  └─centos-swap 253:1    0  1.6G  0 lvm  [SWAP]
sr0              11:0    1   10G  0 rom

分区工具

fdisk 管理mbr分区
gdisk 管理GPT分区
parted 高级操作,可以交互或非交换方式.危险

重新设置内存中的内核分区表版本,使用除了centos6以为的其他版本.

partprobe

centos6的刷新内存中的分区表

#删除内存中6-7的分区表
partx -d --nr 6-7 /dev/sda

二.文件系统管理

2.1.1常见的文件系统

  • ext2
  • ext3
  • ext4:最大16TB的文件,用的最多的.
  • xfs:支持8eb,也用的很多
  • swap
  • iso9660光盘

查看文件系统

lsblk -f

查看内科支持的文件系统

ls /lib/modules/`uname -r`/kernel/fs

2.2 mkfs格式化硬盘

#sda3在这里是一个新的分区
mkfs.xfs /dev/sda3

#新分的分区才能看到uuid,查看uuid的方法是
blkid

#查看文件系统的inode等信息.不太用的.
dump2fs /dev/sda3 #只能看ext的

#xfs的
xfs_info /dev/sdbxx

#查看
tune2fs -l /dev/sdb3

2.3 文件系统检测和修复

2.3.1 修复命令

fsck

fsck $设备
fsck -t $设备
#FS_TYPE:ext4,xfs等等

#常用选项
-f	修复文件
-n	只检查
-d	允许修复只读的挂在设备,在单用户模式下修复 / 时使用,然后立即reboot

e2fsck:ext的

-y 自动回答yes
-f 强制修复
-p 自动进行安全的修复文件系统的问题

xfs_repair: xfs文件系统的

-f 修复文件,
-n 只检查
-d 允许修复只读的挂在设备,在单用户修复 / 时使用,然后立即reboot

2.3.2 实例

1)破坏ext的文件系统

#这里假设sdb2刚格式化好.挂载
mount /dev/sdb2 /mnt
cp /etc/fstab /mnt/f1
ls #看一下里面的内容

#破坏分区,将sdb2设备的最前的字节改成0,就破坏了分区.
dd if=/dev/zero of=/dev/sdb2 bs=1 count=1

ls #在看看能不能看到

#开始修复,先取消挂载.一定要先取消挂载.不然后果很严重
umount /mnt 

e2fsck /dev/sdb2 -y


#再挂载,看看
mount /dev/sdb2 /mnt

ls /mnt/


三.挂载

3.1 临时挂载

挂载mount命令

mkdir /mnt/sdb3
mount /dev/sdb3 /mnt/sdb3

查看谁在用这个文件夹,并t掉他

fuser -v /mnt/sdb1/
#踢掉他用这个文件夹
fuser -km /mnt/sdb1

测试挂载点

findmnt 文件系统|分区

3.2 永久挂载

目录:/etc/fstab

立即生效: mount -a

四.其他相关磁盘操作

  • 特殊空间swap
  • 外围设备
  • du与df
  • dd命令的适用

4.1 特殊空间swap

那硬盘的分区用来当内存,只有当内存不够用的时候,才会用起来.

格式化为swap:mkswap

修改/etc/fstab,立即临时生效:swapon -a

查看swap组成:swap -s

4.1.1 实例禁用swap

1)控制内存利用率,10g就立刻使用10个G的内存空间

dd if=/dev/zero of=/dev/null bs=10G count=1
dd if=/dev/zero of=/dev/null bs=2G count=1 

2)修改/etc/fstab,swapoff -a

4.1.2 拿文件当swap

#创建纯0文件,以下是创建2G的0文件
dd if=/dev/zero of=/swapfile bs=1M count=2048

ll -h /swapfile
chmod a= /swapfile

mkswap /swapfile

vim /etc/fstab #用文件名的形式写挂在
swapon -a

4.2 外围设备

4.2.1 弹出光驱

reject		#弹出光盘
reject -t 	#插入光盘

4.2.2 光盘制作成iso镜像

cp /dev/cdrom /data/centos8.iso

4.2.3 iso刻到U盘里

使用rufus

4.2.4 usb查看

yum install -y usbutils
lsusb

4.3 du与df

du和df所看到的内容是不一样的.

du是文件夹大小;存在跨设备的情况

df 是文件系统的占用空间

4.3.1 特殊文件

#创建空洞文件前看一下
[root@centos7 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   14G  1.4G   13G   11% /
devtmpfs                 908M     0  908M    0% /dev
tmpfs                    920M     0  920M    0% /dev/shm
tmpfs                    920M  8.9M  911M    1% /run
tmpfs                    920M     0  920M    0% /sys/fs/cgroup
/dev/sda1               1014M  145M  870M   15% /boot
tmpfs                    184M     0  184M    0% /run/user/0

#创建空洞文件,选择跳过1024个块创建0个块
[root@centos7 ~]# cd /
[root@centos7 /]# dd if=/dev/zero of=/bigfiles bs=1M count=0 seek=1024
记录了0+0 的读入
记录了0+0 的写出
0字节(0 B)已复制,0.000422449 秒,0.0 kB/秒

#创建后查看一下,发现他不占df -h的空间,但是文件又显示1G这么大.
[root@centos7 /]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   14G  1.4G   13G   11% /
devtmpfs                 908M     0  908M    0% /dev
tmpfs                    920M     0  920M    0% /dev/shm
tmpfs                    920M  8.9M  911M    1% /run
tmpfs                    920M     0  920M    0% /sys/fs/cgroup
/dev/sda1               1014M  145M  870M   15% /boot
tmpfs                    184M     0  184M    0% /run/user/0
[root@centos7 /]# ll /bigfiles
-rw-r--r--. 1 root root 1073741824 818 09:09 /bigfiles
[root@centos7 /]# ll -h /bigfiles
-rw-r--r--. 1 root root 1.0G 818 09:09 /bigfiles

4.3.2 du

#查看文件夹的总大小,而不分别看文件夹里面的细节
[root@centos7 /]# du -sh /
du: 无法访问"/proc/20379/task/20379/fd/4": 没有那个文件或目录
du: 无法访问"/proc/20379/task/20379/fdinfo/4": 没有那个文件或目录
du: 无法访问"/proc/20379/fd/3": 没有那个文件或目录
du: 无法访问"/proc/20379/fdinfo/3": 没有那个文件或目录
1.4G    /
面试题:什么情况下df>du,什么时候du>df

刚刚创建好格式化挂在的时候,df>du

当一个文件夹涉及到两个挂在分区的时候,du>df

4.4 dd

实例

#准备
[root@centos7 ~]# echo abcedfg > f1.txt
[root@centos7 ~]# echo 1234567890 > f2.txt

[root@centos7 ~]# cat f1.txt
abcedfg
[root@centos7 ~]# cat f2.txt
1234567890

#没有conv选项
[root@centos7 ~]# dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4
记录了2+0 的读入
记录了2+0 的写出
2字节(2 B)已复制,0.000564555 秒,3.5 kB/秒
[root@centos7 ~]# cat f2.txt
1234ed[root@centos7 ~]#

#有conv选项
[root@centos7 ~]# echo 1234567890 > f2.txt
[root@centos7 ~]# dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4 conv=notrunc
记录了2+0 的读入
记录了2+0 的写出
2字节(2 B)已复制,0.000530675 秒,3.8 kB/秒
[root@centos7 ~]# cat f2.txt
1234ed7890
[root@centos7 ~]#

五、RAID

常用raid:0、1、5、6、7、10、01、50

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值