欢迎来到李洋的博客

回首境界: 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

16、磁盘、分区、格式化、挂载

1.磁盘的基本概念

了解下如何写入数据

2.磁盘的基本结构

机械磁盘
 磁道: 由磁头磁化磁道上的金属颗粒,形成金属块,就会产生电流,正负极,就能表示 0 1 0 1
 扇区: 512字节sector

3.磁盘的预备知识

磁盘接口
  IDE   out 75MB
  SCSCI out
  SATA III  6Gbps/s 750MB/s 个人使用
  SAS   6Gbps/s 8Gbps/s 1000MB/s    企业使用
  msata
sata顶用sas   经济 实惠

ssd 固态盘 个人|企业 强烈 -->贵

1.M.2接口是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来的mSATA接口。
  尺寸小,传输性能高

2.ssd的m.2接口支持两种通道协议
  SATA  便宜,通常主板都支持, 慢
  PCIE  贵,是否支持需要看主板, 块
3.优势: 块 纯电子 小巧 没噪音 抗摔(抗震)

磁盘基本术语

容量  kb MB GB TB PB EB ......
转速  5400(out) SATA 7200 SAS 15000
IOPS    input/output    I/O

磁盘在linux下的命名规则

无论是SATA还是SAS都是存放在/dev/sd[a-z]   /dev/sdaa-/dev/sdzz
IDE /dev/hda

设备名称    分区信息    设备类型
/dev/sda    /dev/sda1   第一块物理磁盘第一分区
/dev/sdb    /dev/sdb2   第二块物理磁盘第二个分区
/dev/vdd    /dev/vdd4   第四块虚拟磁盘的第四个分区

分区仅能分配4个主要分区
 主引导程序即主引导记录MBR  
  0柱面0磁道1扇区的前446字节  
  分区最多占用64字节(4个主分区) 
  结束标注2个字节
   分区方式: 比如需要分配6个分区  
    4个主
     3主+1扩展(逻辑分区)
     2主+1扩展(2逻辑分区)

了解下如何查看磁盘的大小\文件内容的大小

[root@www ~]# du -sh /etc/
38M /etc/

[root@www ~]# df -h    #查看磁盘使用情况
[root@www ~]# lsblk    #查看设备详情,以及分区的情况

4.磁盘基本分区Fdisk

1.先准备磁盘
由于没有真实的服务器,只能添加虚拟的磁盘

2.分区fdisk --->分低于2TB的磁盘

 [root@www ~]# ll /dev/sd*
 brw-rw---- 1 root disk 8, 0 5月 5 19:21 /dev/sda
 brw-rw---- 1 root disk 8, 1 5月 5 19:21 /dev/sda1
 brw-rw---- 1 root disk 8, 2 5月 5 19:21 /dev/sda2
 brw-rw---- 1 root disk 8, 16 5月 5 19:21 /dev/sdb
 brw-rw---- 1 root disk 8, 32 5月 5 19:21 /dev/sdc
 [root@www ~]# lsblk 
 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 sda 8:0 0 40G 0 disk 
 ├─sda1 8:1 0 1G 0 part /boot
 └─sda2 8:2 0 39G 0 part 
   ├─centos-root 253:0 0 37G 0 lvm /
   └─centos-swap 253:1 0 2G 0 lvm [SWAP]
 sdb 8:16 0 20G 0 disk 
 sdc 8:32 0 4T 0 disk 

 [root@xuliangwei ~]# fdisk /dev/sdb
 Command (m for help): m #输入m列出常用的命令
 Command action
    a toggle a bootable flag #切换分区启动标记
    b edit bsd disklabel #编辑sdb磁盘标签
    c toggle the dos compatibility flag #切换dos兼容模式
    d delete a partition #删除分区
    l list known partition types #显示分区类型
    m print this menu #显示帮助菜单
    n add a new partition #新建分区
    o create a new empty DOS partition table #创建新的空白分区表
    p print the partition table #显示分区表的信息
    q quit without saving changes #不保存退出
    s create a new empty Sun disklabel #创建新的Sun磁盘标签
    t change a partitions system id #修改分区ID,可以通过l查看id
    u change display/entry units #修改容量单位,磁柱或扇区
    v verify the partition table #检验分区表
    w write table to disk and exit #保存退出
    x extra functionality (experts only) #拓展功能

 分配1个分区
 [root@www ~]# fdisk /dev/sdb 
 Command (m for help): n    
 Partition type:
    p primary (0 primary, 0 extended, 4 free)
    e extended
 Select (default p): p  #选择分配主分区
 Partition number (1-4, default 1):         
 First sector (2048-41943039, default 2048): #开始的扇区 回车即可
 Using default value 2048
 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1G #当前分区的大小
 Partition 1 of type Linux and of size 1 GiB is set

 Command (m for help): p    #查看当前磁盘的分区情况

 Disk /dev/sdb: 21.5 GB, 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
 Disk label type: dos
 Disk identifier: 0x44d0ef75

    Device Boot Start End Blocks Id System
 /dev/sdb1 2048 2099199 1048576 83 Linux


 分配2个分区
 Command (m for help): n  
 Partition type:
    p primary (1 primary, 0 extended, 3 free)
    e extended
 Select (default p): 
 Using default response p
 Partition number (2-4, default 2): 
 First sector (2099200-41943039, default 2099200): 
 Using default value 2099200
 Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +2G
 Partition 2 of type Linux and of size 2 GiB is set

 Command (m for help): p

 Disk /dev/sdb: 21.5 GB, 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
 Disk label type: dos
 Disk identifier: 0x44d0ef75

    Device Boot Start End Blocks Id System
 /dev/sdb1 2048 2099199 1048576 83 Linux
 /dev/sdb2 2099200 6293503 2097152 83 Linux



 分配6个分区 (超出了4个主分区,最佳 3p+1e+3l 2p+1e+4l)
 Device Boot Start End Blocks Id System
 /dev/sdb1 2048 2099199 1048576 83 Linux
 /dev/sdb2 2099200 6293503 2097152 83 Linux
 /dev/sdb3 6293504 10487807 2097152 83 Linux
 /dev/sdb4 10487808 41943039 15727616 5 Extended
 /dev/sdb5 10489856 20975615 5242880 83 Linux
 /dev/sdb6 20977664 31463423 5242880 83 Linux
 /dev/sdb7 31465472 41943039 5238784 83 Linux


 检查分区情况
 sdb 8:16 0 20G 0 disk 
  |-sdb1 8:17 0 1G 0 part 
  |-sdb2 8:18 0 2G 0 part 
  |-sdb3 8:19 0 2G 0 part 
  |-sdb4 8:20 0 1K 0 part 
  |-sdb5 8:21 0 5G 0 part 
  |-sdb6 8:22 0 5G 0 part 
  `-sdb7 8:23 0 5G 0 part 

3.格式化->创建文件系统(装修)

[root@www ~]# mkfs.xfs /dev/sdb1

4.挂载

[root@www /]# mount /dev/sdb1 /soft/    #将/soft作为/dev/sdb1分区的一个入口目录
[root@www /]# touch /soft/1111  #添加111文件,实际上是在/dev/sdb1分区上添加的数据
[root@www /]# ls /soft/
1111
[root@www /]# umount /soft/ #卸载/soft挂载信息
[root@www /]# ls /soft/ #soft又回到了原来的目录属性
nginx nginx-1.16.0

---------注意: 原来写入到/dev/sdb1分区的数据不会被删除,当重新挂载一个新的目录,文件还会回来.
[root@www /]# mkdir /data
[root@www /]# mount /dev/sdb1 /data/
[root@www /]# ls /data/
1111

5.实现永久挂载,写入配置文件/etc/fstab 以实现开机时,自动挂载

[root@www ~]# cat /etc/fstab
 #设备名称  挂载的位置   文件系统类型  挂载的参数   是否备份    是否检查
 /dev/sdb1  /data   xfs defaults 0  0

#请先卸载挂载的信息,然后再mount -a
[root@www ~]# mount -a

5.磁盘的基本分区Gdisk

GPT 支持分配大于2个TB以上的磁盘,    同时支持N多个主分区

[root@www ~]# yum install gdisk -y
[root@www ~]# gdisk /dev/sdc
 ?
 n
   --->设定大小
 p
 wq
[root@www ~]# mkfs.xfs /dev/sdc1
[root@www ~]# mkdir /datac
[root@www ~]# mount /dev/sdc1 /datac/
准备一个大于2TB的磁盘, 分5个分区 每个分区500GB --->GDISK

6.磁盘挂载方式Mount

临时操作

1.通过mount进行挂载,但重启将会失效。我们称为临时生效。

# 选项:-t指定文件系统挂载分区 -a 挂载/etc/fstab中的配置文件 -o 指定挂载参数
# 挂载/dev/sdb1至db1目录
[root@xuliangwei ~]# mkdir /db1
[root@xuliangwei ~]# mount.xfs /dev/sdb1 /db1/
[root@xuliangwei ~]# mount -t xfs /dev/sdb1 /db1/

2.挂载的磁盘,如果不想使用可以使用umount进行卸载。

#选项: -l 强制卸载

#1.卸载目录方式
[root@xuliangwei ~]# umount /db1

#2.卸载设备方式
[root@xuliangwei ~]# umount /dev/sdb1

#3.umount不能卸载的情况
[root@xuliangwei db1]# umount /db1  
umount: /db1: device is busy.
  (In some cases useful info about processes that use
   the device is found by lsof(8) or fuser(1)

#PS: 如上情况解决办法有两种, 
1.切换至其他目录 
2.使用'-l'选项强制卸载    
[root@student db1]# umount -l /db1

永久操作 /etc/fstab

格式

/etc/fstab配置文件编写格式
 要挂载的设备 挂载点(入口) 文件系统类型  挂载参数    是否备份    是否检查
 /dev/sdb1  /db1    xfs defaults    0   0

第四列:挂载参数。挂载参数有很多,在这块我们了解即可,不必深究。
参数  含义
async/sync  是否为同步方式运行。默认async
user/nouser 是否允许普通用户使用mount命令挂载。默认nouser
exec/noexe  是否允许可执行文件执行。默认exec
suid/nosuid 是否允许存在suid属性的文件。默认suid
auto/noauto 执行mount -a 命令时,此文件系统是否被主动挂载。默认auto
rw/ro   是否以只读或者读写模式进行挂载。默认rw
defaults    具有rw,suid,dev,exec,auto,nouser,async等默认参数的设定


演示临时挂在时参数的使用,只读文件系统
[root@www ~]# mount -o ro /dev/sdc1 /datac/



第五列:是否进行备份。通常这个参数的值为0或者1
选项  含义
0   代表不做备份
1   代表要每天进行备份操作
2   代表不定日期的进行备份操作


第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整
选项  含义
0   不要检验磁盘是否有坏道
1   检验
2   校验 (当1级别检验完成之后进行2级别检验) 

建议挂在时使用UUID,UUID

1.怎么磁盘分区的UUID 
[root@www ~]# blkid|grep sdc1
/dev/sdc1: UUID="c7c940b3-277b-49fa-960b-eef5ed6e9b1b"

2.手动测试是否能正常的挂载
[root@www ~]# mount UUID="c7c940b3-277b-49fa-960b-eef5ed6e9b1b" /datac

3.将信息写入到/etc/fstab文件中,保证下次启动系统自动挂载
UUID="c7c940b3-277b-49fa-960b-eef5ed6e9b1b" /datac xfs defaults 0 0 

4.卸载/datac 挂载信息, 然后使用 mount -a 检查/etc/fstab文件是否ok
[root@www ~]# mount -a

PS: 如果不检查写错了直接重启, 会导致系统无法启动. 无法启动-->提示-->输入密码-->修改配置-->保存-->重启

7.虚拟磁盘介绍SWAP

物理内存不够用会使用SWAP
如果没有配置SWAP,系统则会随机KILL掉占用内存较大的进程.
如果配有SWAP,当程序内存不足时,会大量使用SWAP,此时系统又会特别的缓慢

1.创建分区,并格式化为swap分区。

[root@xuliangwei ~]# fdisk /dev/sdb #分1个G大小
[root@xuliangwei ~]# mkswap /dev/sdb1 #格式化为swap

2.查看当前swap分区大小,然后进行扩展和缩小

[root@xuliangwei ~]# free -m
              total used free shared buff/cache available
Mem: 1980 1475 80 10 424 242
Swap: 2047 4 2043

#1.扩展swap分区大小
[root@xuliangwei ~]# swapon /dev/sdb2
[root@xuliangwei ~]# free -m
              total used free shared buff/cache available
Mem: 1980 1475 80 10 424 242
Swap: 3047 4 2043

#2.缩小swap分区大小
[root@xuliangwei ~]# swapoff /dev/sdb1
[root@xuliangwei ~]# free -m
              total used free shared buff/cache available
Mem: 1980 1475 80 10 424 242
Swap: 2047 4 2043
[root@xuliangwei ~]# swapoff -a #代表关闭所有的swap

3.检查当前swap分区有哪些设备

[root@xuliangwei ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 4616 -2
/dev/sdb1 partition 1048572 0 -2

4.如果磁盘没有过多的分区可用,也可以通过文件增加SWAP空间,本质上还是磁盘

[root@xuliangwei ~]# dd if=/dev/zero of=/opt/swap_file bs=1M count=500
[root@xuliangwei ~]# chmod 0600 /opt/swap_file
[root@xuliangwei ~]# mkswap -f /opt/swap_file 
[root@xuliangwei ~]# swapon /opt/swap_file
[root@xuliangwei ~]# free -m

PS: 如果希望swap开机自动挂载,将swap信息追加至/etc/fstab即可。




posted on 2019-06-24 17:19  miss_xxy  阅读(498)  评论(0编辑  收藏  举报

导航

levels of contents