Linux系统管理体系-磁盘管理体系

1、磁盘分区

1)预备姿势

MBR:每一块硬盘上存放磁盘引导程序,引导程序在磁盘开头部分,用于引导系统启动。我们一般不用太关注我们安装系统的时候自动安装。

位置:磁盘分区表,磁盘的开始部分:0磁头,0磁道,1扇区(512字节)

这512字节存放:

  • 引导程序446字节(MBR)
  • 磁盘分区表(64字节)4个分区表
  • 结束标记 55AA,2字节

分区表64字节,每个分区占用16字节,最多只有4个分区

  • 这4个分区叫做主分区。

    • 如果只划分1分区使用所有空间,将无法继续划分分区。
    • 如果划分了4个分区,但是磁盘空间还有剩余,剩余空间将无法继续使用。
  • 扩展分区是用于解决主分区数量主分区只能有4个问题,扩展分区无法直接使用,需要在扩展分区下面创建逻辑分区,存放数据

  • 逻辑分区在扩展分区中,用于存放数据

这些分区概念,分区使用MBR形式,主分区+扩展分区最多4个(扩展分区只能1个),扩展分区用于创建逻辑分区。 未来使用基本就是创建主分区就够了,安装系统的时候自动创建主分区,创建扩展分区,创建逻辑分区即可。

2)磁盘及分区命名

磁盘文件或分区文件放在/dev/下面

磁盘命名

bash 复制代码
#磁盘接口
sas/sata/scsi接口的硬盘,硬盘名字是以sd开头的
虚拟机(kvm)/公有云的硬盘,硬盘名字是以vd开头的
#第几块磁盘:通过字母表示,从字母a开始一次类推
/dev/sda
​
#云服务硬盘
/dev/vda

分区命名

分区命名是根据分区类型进行命名的
如果是主分区或者扩展分区则分区号从1-4范围
如果是逻辑分区,逻辑分区的分区号从5开始。
bash 复制代码
#案例一 硬盘及分区命名
第2块SATA硬盘的第1个主分区/dev/sdb1
第3块SAS硬盘的第2个逻辑分区/dev/sdc6
第5块公有云的云盘的第3个主分区 /dev/vde3

2、磁盘分区实战

1)概述

一块硬盘成长史三部曲

  • 打隔断:分区操作
  • 装修,格式化:创建文件系统
  • 添加钥匙🔑:挂载(命令,配置文件)

查看服务器下硬盘

fdisk -l

2)磁盘分区

创建一个分区使用硬盘所有容量,就按照默认即可!

案例一 给硬盘sdb创建一个20MB的分区

sh 复制代码
#1、操作硬盘
fdisk /dev/sdb
#2、对硬盘进行增删改查
p print 输出磁盘分区信息
n new 创建分区
d delete 删除分区
w writeq 保存并退出 
q quit退出不保存
#3、创建20MB分区
命令(输入 m 获取帮助):n
​
Partition type: p   #提示选择类型
p primary (0 primary,0 extended,4 free)
e extended  #拓展分区
​
Select (default p): 回车即可   #输入p或回车默认使用主分区
Using default response p
分区号(1-4,默认 1): 回车即可     #分区号回车使用默认的1号
起始扇区(2048-208895,默认为 2048): 回车即可 #回车,使用默认的起点
将使用默认值 2048
Last 扇区,+扇区 or +size{k,M,G}(2048-208895,默认为 208895):+20M    #+20M分区20MB分区 1 已设置为 Linux 类型,大小设为 20 MiB
​
#4.通过p查看
命令(输入 m 获取帮助): p
磁盘 /dev/sdb:1073 MB,1073741824字节,2097152 个扇区
Units =扇区 of 1 *512 = 512 bytes
扇区大小(逻辑/物理):512 字节 /512 字书
I/0 大小(最小/最佳):512 字节 /512 字节
磁盘标签类型:dos
磁盘标识符:0x2af54b05
设备 Boot  Start END blocks Id System
/dev/sdb1 2048 43007 20480 83 Linux
#这里有sdb1即可
​
#5.通过w保存退出
​
#6.查看/dev/sdb*
​
sh 复制代码
[root@nanjing ~]# fdisk /dev/vda
欢迎使用 fdisk (util-linux 2.23.2)。
​
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

不按w,就不会保存

小tip:如果在创建主分区后,在创建一个扩展分区。所有剩下的容量都会给扩展分区。

3)格式化(创建文件系统)

创建 make 文件系统 filesystem,表示给磁盘分区进行装修,给磁盘分区创建规则,一定量的inode,block。 mkfs(make filesystem)创建文件系统(格式化)

mkfs 磁盘或分区

mkfs.xfs /dev/sdb1

  • xfs是文件系统类型,Centos7默认的文件系统类型
  • mkfs.ext4 文件系统类型,用于Centos 6.x或公有云使用

如果出现上述情况,说明硬盘已经有文件系统。-f可以强制格式化。慎用!!!

4)临时挂载

Linux中的设备,需要通过挂载命令,给设备指定入口(已经存在的空目录),否则将无法使用

通过mount命令指定 设备,指定入口(目录)mount 设备 目录

入口:挂载点,一般是个空目录就行,/mnt linux临时挂载点!

卸载

umount + 挂载点

5)永久挂载

我们在Linux下面的操作一般都分为临时和永久,对于挂载来说,我们希望永久生效(临时+永久)。

实现永久挂载的方案:

  • 方案1 使用rc.local ,把挂载命令:mount /dev/sdb1 /data/写入到/etc/rc.local,注意命令最好写为绝对路径
  • 方案2 专业的开机自动挂载的配置文件/etc/fstab,根据配置文件的要求把mount命令改为配置文件形式即可
第1列 第2列 第3列 第4列 第5列 第6列
设备名字/dev/sdb1或UUID形式 挂载点 文件类型:xfs,ext4,swap 一般是defaults,挂载选项 是否备份 是否检查
设备名字:/dev/sda UUID:UUID="......" /data/ xfs defaults 0 0

6)挂载光盘

sh 复制代码
mount /dev/cdrom /mnt/
ls -l /mnt/Packages/*.rpm | wc -l

3、mbr vs gpt

分区表 特点 对应命令
mbr 支持2tb以内的硬盘,大于2tb则只识别2tb.区别主分区,扩展分区,逻辑分区 fdisk/parted
gpt 支持大容量硬盘,主分区无限使用(100多个). gdisk/parted

parted命令也可以创建分区,而且实时生效与fdisk对比!

sh 复制代码
#案例一 创建gpt格式的分区大小10MB(/dev/sdc)

查看硬盘分区信息
parted /dev/sdb print

编辑/dev/sdc
parted /dev/sdc

创建分区表gpt格式
mktable gpt 或者mklabel gpt -样#注意mbr叫做msdos类型

创建分区10mb
primary 0 10
primary 10 20

删除分区
rm 1

退出编辑
q 或quit

4、创建swap

  • swap交换分区:内存不足的时候临时充当内存,swap占用的磁盘空间
  • 所以未来应用建议:如果内存充足并且服务对性能要求较高,可以关闭swap,

联想:小米手机的虚拟内存

案例一 服务器运行java程序,大量占用内存,以至于开始占用swap如何解决?

  • 第一步保证网站正常,增加swap空间
  • 联合开发一起排查

1.创建指定大小的文件1g的文件

2.把文件转换为swap.

3.激活这个swap,把它加入到linux中

4.记得配置永久挂载

sh 复制代码
#1、创建指定大小的文件
dd if=/dev/zero of=/tmp/1g bs=1M count=1000
if ==== input file 输入文件/dev/zero,不断输出空
of ==== ouput file 输出文件
bs ==== block size 每次读取多少
count ==== 读取次数

#2、把文件转换为swap(格式化)
mkswap /tmp/1g

------------------------------------------------------------
[root@nanjing tmp]# file 1g
1g: data
[root@nanjing tmp]# mkswap /tmp/1g
正在设置交换空间版本 1,大小 = 1023996 KiB
无标签,UUID=072c7640-ecc7-4d61-ac16-ac5e099d9bbc
[root@nanjing tmp]# file 1g 
1g: Linux/i386 swap file (new style), version 1 (4K pages), size 255999 pages, no label, UUID=072c7640-ecc7-4d61-ac16-ac5e099d9bbc
------------------------------------------------------------

#3、激活这个swap,把他加入linux中
swapon /tmp/1g

------------------------------------------------------------
[root@nanjing tmp]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.6G        627M        132M        596K        2.9G        2.7G
Swap:            0B          0B          0B
[root@nanjing tmp]# swapon /tmp/1g
swapon: /tmp/1g:不安全的权限 0644,建议使用 0600。
[root@nanjing tmp]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.6G        629M        130M        596K        2.9G        2.7G
Swap:          999M          0B        999M
[root@nanjing tmp]# swapoff /tmp/1g
#关闭swap
------------------------------------------------------------

#4、配置永久挂载

#方案一: swapon /tmp/1g 写入到rc.local
#方案二: 写入/etc/fstab
/tmp/1g swap swap defaults 0 0

5、企业分区方案

  1. 公有云
  2. 物理机/虚拟机(私有云)

服务器存放的数据,不重要

分区 作用与大小
/boot/ 引导分区 引导系统启动与存放引导文件,存放系统内核镜像,推荐1G即可
swap 根据实际内存配置,大于8G,swap配置8G即可 低于实际内存低于8G,1.5倍或2倍,最大8G. 补充:公有云可以不配置,如果是java建议配置一些
/根分区 所有剩余空间给根

服务器存放重要的数据

分区 作用与大小
/boot/ 引导分区 引导系统启动与存放引导文件,存放系统内核镜像,推荐1G即可
swap 根据实际内存配置,大于8G,swap配置8G即可 低于实际内存低于8G,1.5倍或2倍,最大8G. 补充:公有云可以不配置,如果是java建议配置一些
/根分区 给40G-208G,主要安装一些软件.重要数据单独存放
/data/ 剩余所有空间

不知道是否重要

分区 作用与大小
/boot/ 引导分区 引导系统启动与存放引导文件,存放系统内核镜像,推荐1G即可
swap 根据实际内存配置,大于8G,swap配置8G即可 低于实际内存低于8G,1.5倍或2倍,最大8G. 补充:公有云可以不配置,如果是java建议配置一些
/根分区 给40G-208G,主要安装一些软件.重要数据单独存放
/data/ 未来谁使用谁划分

6、重装系统保留数据

如果机器玩崩溃了,重装系统,我们又想保留数据,需要怎么操作?

1、通过U盘启动

2、保持原服务器的部分分区(保留/boot和/data,/和/swap删除并新建)

3、df -h查看磁盘分区,发现/data没了,不要慌!!!

4、创建data目录,把/dev/sda5挂载到data目录

5、写入/etc/rc.local,永久挂载

相关推荐
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
皮锤打乌龟5 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
钰@5 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo5 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
yaosheng_VALVE6 小时前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
看山还是山,看水还是。7 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
扣得君7 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go7 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求7 小时前
Linux中给普通账户一次性提权
linux·运维·服务器