zoukankan      html  css  js  c++  java
  • 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即可。




  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/Forever-x/p/8335efbc4bc1f50e2689034ca1cb3883.html
Copyright © 2011-2022 走看看