zoukankan      html  css  js  c++  java
  • 磁盘管理-中部

    分区相关理论知识

    mbr是什么

    关于mbr
    mbr引导:主引导记录

    开机启动过程

    开机自检(BIOS) (硬件检查)
    MBR引导 
    GRUB菜单  (选择不同的内核)
    加载内核  (从硬盘到内存)
    运行init进程  (Linux系统里面第一个进程)
    读取/etc/inittab配置文件(读取运行级别)
    执行/etc/rc.d/rc.sysinit脚本  (系统的初始化脚本 设置IP地址)
    执行/etc/rc.d/rc脚本  (根据系统的运行级别 在开机的时候启动不同的软件)
    启动mingetty进程   (登录界面)

    mbr在哪里

    磁盘的引导扇区   0磁头 0磁道 1扇区 前446字节
    MBR引导  0头0道1扇区 前446字节
    一个扇区的大小为512字节
    前446字节   MBR 主引导记录  引导系统启动
    中间64字节   磁盘的分区表  记录着磁盘分区从哪里开始到哪里结束
    最后2字节    分区结束表示55AA
    分区表
    在分区表的64字节里,划分为4个格子 16*4
    每个格子里存放的是分区的信息(主分区 扩展分区)
    image.png

    查看内存使用情况

    free -h
    Linux把你是使用过的命令或文件 替你缓存(buffer cache)起来,提高下次使用速度

    [root@nfsnobody ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          980M       721M       259M       224K        59M       529M
     -buffer    +buffer 
     -cache     +cache
    -/+ buffers/cache:       131M       848M   这个位置才是真正的剩余内存
    Swap:         767M       196K       767M
    

    磁盘分区

    三种分区

    主分区
    最多有4个主分区
    扩展分区
    没有办法直接使用 ,需要划分成逻辑分区才可以使用。
    逻辑分区
    必须要在扩展分区下面划分逻辑分区才可以使用。
    主分区   primary  每个分区占用16个字节的分区表  一般一定要有   存放数据
    扩展分区 extend   无法直接使用   最多1个   
    逻辑分区 logical  在扩展分区下创建逻辑分区  存放数据

    磁盘分区的命名规则

    主分区 1-4
    扩展分区 1-4 一般为4
    逻辑分区 从5开始
    第1块sas硬盘的第一个主分区     /dev/sda
    第2块sata硬盘的第2个主分区    /devsdb2
    第3块sata硬盘的第1个逻辑分区  /dev/sdc5
    磁盘名称示例
    第一块硬盘 sda
    第二块硬盘 sdb
    第三块硬盘 sdc
    第一块硬盘的第一个主分区:sda1
    第一块硬盘的第一个逻辑分区:sda5
    第二块硬盘的第二个逻辑分区:sdb6

    在系统中磁盘分区的命名
    磁盘设备都放在/dev/目录下
    sas/sata/scsi/接口 sd 开头
    ide接口        hd开头

    分区方式

    没有重要数据

    /boot   引导分区       200M    存放系统的引导信息 内核
    swap   交换分区     防止内存用光了 临时的一个内存
    如果你的内存小于8G swap是内存的1.5倍   如果你的内存大于8G swap给8G
    /     根分区     剩余多少给多少

    很多重要数据

    /boot   引导分区       200M    存放系统的引导信息 内核
    swap   交换分区     防止内存用光了 临时的一个内存
    如果你的内存小于8G swap是内存的1.5倍   如果你的内存大于8G swap给8G
    /     根分区     20G-200G
    /data  存放重要的数据  剩余多少给多少

    不知道数据是否重要

    /boot   引导分区     200M    存放系统的引导信息 内核
    swap   交换分区   防止内存用光了 临时的一个内存
    如果你的内存小于8G swap是内存的1.5倍   如果你的内存大于8G swap给8G
    /     根分区   20G-200G
    剩余空间不分 放着谁使用这台服务器谁来分区

    磁盘分区

    linux里面的分区工具
       fdisk   主要是给磁盘小于2T(只能出来分区表是mbr的)
       parted   主要是给磁盘大于2T(gpt)
    创建环境
    在虚拟机添加两块硬盘 模拟实验环境

    /etc/fatab详解

    /etc/fatab 开机自动挂载
    #
    # /etc/fstab
    # Created by anaconda on Tue Jul 10 18:21:44 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=c4f4be67-f408-4f14-b01e-a0c0777932cb  /               ext4          defaults        1        1
    UUID=8dc40910-35ed-4d1b-acd7-5dad0ad47746  /boot           ext4          defaults        1        2
    UUID=09e2ce6c-7249-4239-8843-5ef9cc3a9a99  swap            swap          defaults        0        0
    tmpfs                   /dev/shm        tmpfs         defaults            0                0
    devpts                  /dev/pts        devpts        gid=5,mode=620      0                0
    sysfs                   /sys            sysfs         defaults            0                0
    proc                    /proc           proc          defaults            0                0
    设备分区名称       第二列挂载点(目录) 文件系统类型      挂载参数     是否备份    是否开机磁盘检查
    
    

    fdisk分区

    刚才模拟环境添加了两块硬盘

    [root@nfsnobody ~]# fdisk -l|grep sd[a-c]:
    Disk /dev/sda: 21.5 GB, 21474836480 bytes
    Disk /dev/sdb: 213 MB, 213909504 bytes     这两块就是刚才添加的  213MB
    Disk /dev/sdc: 213 MB, 213909504 bytes
    

    fdisk相关命令

    fdisk命令及参数
    fdisk -l
          -u 磁盘分区的时候以扇区为单位默认是按照柱面
      -c 关闭dos兼容模式
    fdisk内部命令
    m      显示帮助
    n new  创建分区
    p      显示所有分区信息
    d      删除分区
    w      保存并退出
    q      退出不保存

    创建一个主分区

    如果要把硬盘全部空间都用上   在选择大小那一列 直接回车 不输入内容  默认是按最大空间
    创建一个10MB主分区

    fdisk -cu关闭dos兼容模式  磁盘分区的时候以扇区为单位默认是按照柱面
    [root@nfsnobody ~]# fdisk -cu /dev/sdb 进入fdisk 编辑分区
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x303d0abc.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    Command (m for help): n     创建分区
    Command action              选择分区类型
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1   分区号码
    First sector (2048-417791, default 2048): 
    从哪里开始 (直接回车 按默认)
    Using default value 2048  默认选择第一个扇区
    Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10M 
    创建10M的分区  选择+10M
    Command (m for help): p          p显示所有分区信息
    
    Disk /dev/sdb: 213 MB, 213909504 bytes
    64 heads, 32 sectors/track, 204 cylinders, total 417792 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 identifier: 0x303d0abc
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048       22527       10240   83  Linux
    

    创建扩展分区及逻辑分区

    工作中 扩展分区的分区原则是:剩多少给多少
    创建10MB的主分区 创建一个使用所有容量的扩展分区  创建两个50MB逻辑分区

    [root@nfsnobody ~]# fdisk -cu /dev/sdb   进入fdisk 编辑分区
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x303d0abc.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    Command (m for help): p  从上一步继续 创建两个逻辑分区  查看一下有的分区
    
    Disk /dev/sdb: 213 MB, 213909504 bytes
    64 heads, 32 sectors/track, 204 cylinders, total 417792 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 identifier: 0x303d0abc
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048       22527       10240   83  Linux
    
    Command (m for help): n                    创建新的分区
    Command action
       e   extended   扩展分区
       p   primary partition (1-4)
    e                                          创建扩展分区分区
    Partition number (1-4): 2                  选择分区号码
    First sector (22528-417791, default 22528): 
    Using default value 22528
    Last sector, +sectors or +size{K,M,G} (22528-417791, default 417791): 
    Using default value 417791
    
    Command (m for help): n              创建新的分区
    Command action
       l   logical (5 or over)   逻辑分区,创建完扩展分区后只能创建逻辑分区
       p   primary partition (1-4)
    l                                  选择l  创建逻辑分区 有扩展分区后才能创建逻辑分区
    
    First sector (24576-417791, default 24576): 
    Using default value 24576
    Last sector, +sectors or +size{K,M,G} (24576-417791, default 417791): +50M   选择50M
    
    Command (m for help): P              查看下所有的分区信息 
    
    Disk /dev/sdb: 213 MB, 213909504 bytes
    64 heads, 32 sectors/track, 204 cylinders, total 417792 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 identifier: 0x303d0abc
    创建成功  一个10M的主分区  两个逻辑分区  
    如果要删除的话  d删除 删除扩展分区 其下的所有逻辑分区都会被删除
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048       22527       10240   83  Linux
    /dev/sdb2           22528      417791      197632    5  Extended
    /dev/sdb5           24576      126975       51200   83  Linux
    /dev/sdb6          129024      231423       51200   83  Linux
    

    fdisk分区及挂载

    创建一个主分区

    进入fdisk

    [root@nfsnobody ~]# fdisk /dev/sdb
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0x0a515057.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    警告 : 可以关闭dos的兼容模式,使用扇区作为分区的默认单位  -cu ↓
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): p            查看分区信息
    
    Disk /dev/sdb: 213 MB, 213909504 bytes
    64 heads, 32 sectors/track, 204 cylinders
    Units = cylinders of 2048 * 512 = 1048576 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0a515057
    
       Device Boot      Start         End      Blocks   Id  System
    现在没有创建分区  所以为空
    

    创建主分区

    Command (m for help): n      创建新分区
    Command action
       e   extended
       p   primary partition (1-4)
    p                              创建主分区
    Partition number (1-4): 1      分区号码设置为一
    First cylinder (1-204, default 1): 
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204): 
    Using default value 204
    

    创建完保存退出

    fdisk编辑完退出前记得保存

    Command (m for help): w           w保存退出   fdisk编辑完 退出前记得保存 
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@nfsnobody ~]# fdisk -l 创建完成后 可以查看下
    

    格式化文件系统

    mkfs ==make filesystem即创建文件系统。

    [root@nfsnobody ~]# partprobe /dev/sdb1   操作这一步 正常是不回任何提示的
    [root@nfsnobody ~]# mkfs.ext4 /dev/sdb1
    这一步会生成block和inode
    使用mkfs.ext4  会报以下警告
    This filesystem will be automatically checked every 25 mounts or
    这个磁盘分区会被自动检查     每挂载25次或每隔180天 就会进行一次磁盘检查
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    关闭磁盘的自动检查                    使用tune2fs -c or -i可以关闭
    -c 每挂载多少次进行一次磁盘检查 -c 0  关闭
    -i 每隔多少天进行一次磁盘检查   -i 0  关闭
    

    关闭分区的自动检查

    -c 每挂载多少次进行一次磁盘检查   -c 0 关闭
    -i 每隔多少天进行一次磁盘检查     -i 0  关闭

    [root@nfsnobody ~]# tune2fs -c 0 -i 0 /dev/sdb1
    tune2fs 1.41.12 (17-May-2010)
    Setting maximal mount count to -1
    Setting interval between checks to 0 seconds
    

    挂载分区

    挂载到/data  没有/data记得事先创建好

    [root@nfsnobody ~]# mkdir -p /data           创建挂载目录
    [root@nfsnobody ~]# mount /dev/sdb1 /data/   挂载
    [root@nfsnobody ~]# df -h     挂载后记得检查
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        19G  1.7G   16G  10% /
    tmpfs           491M     0  491M   0% /dev/shm
    /dev/sda1       190M   35M  146M  19% /boot
    /dev/sdb1       194M  1.8M  182M   1% /data    已挂载
    

    永久挂载

    /etc/rc.local 开机自启动
    追加到 /etc/fatab底部    /bin/mount /dev/sdb1 /data/
    
    /etc/fatab 开机自动挂载
    [root@nfsnobody ~]# vim /etc/fstab 
    /dev/sdb1               /data                   ext4    defaults        0 0
    

    parted创建分区

    parted命令详解

    parted 的使用  parted 还可以非交互式创建分区  
    parted使用需谨慎  parted是实时保存的
    parted可以创建gpt和 mbr两种格式的分区表
    gpt
    msdos(mbr) 
    parted /dev/sdc 
    
    print    显示分区信息
    mktable  创建磁盘分区表  
             gpt  
             msdos(mbr)
    mkpart   创建分区
    rm       删除分区
    q        退出不保存
    

    parted帮助信息

    parted内置命令 h 是查看帮助

    [root@nfsnobody ~]# parted /dev/sdc
    GNU Parted 2.1
    Using /dev/sdc
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)    h
    
      mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
     创建分区表
      mkpart PART-TYPE [FS-TYPE] START END     make a partition
     创建一个分区
      mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
     创建一个分区 分区带着文件系统
      print [devices|free|list,all|NUMBER]     display the partition table, available
            devices, free space, all found partitions, or a particular partition
     显示分区信息
      rm NUMBER                                delete partition NUMBER
     删除一个分区
    

    mkpart 可以使用的PART-TYPE类型

    GPT 格式可以创建N个主分区,所以类型都选为主分区即可。

    (parted) help mkpart                                        
      mkpart PART-TYPE [FS-TYPE] START END     make a partition
        PART-TYPE is one of: primary, logical, extended
                             主分区 ,逻辑分区 ,扩展分区
    

    创建分区

    parted 创建分区实时生效,比较危险。

    [root@nfsnobody ~]# parted /dev/sdc   使用parted编辑分区
    GNU Parted 2.1
    Using /dev/sdc
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p                         p查看分区                                        
    Error: /dev/sdc: unrecognised disk label   未识别	                                      
    (parted) mktable gpt               创建 gpt 磁盘分区表
    (parted) p                         p查看分区                                          
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdc: 214MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start  End  Size  File system  Name  Flags
    
    (parted) mkpart LH 0 10            创建 分区 分区名LH  从多少开始到多少结束                                       
    Warning: The resulting partition is not properly aligned for best performance.
    提示分区没有对齐,这个错误无视即可。
    Ignore/ Cancel? i                    忽略信息 i   忽略/取消                                    
    (parted) p                          p查看分区                                       
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdc: 214MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name  Flags
     1      17.4kB  10.0MB  9983kB               LH
    
    (parted) mkpart LH  10 20             创建 分区 分区名LH  从多少开始到多少结束                                     
    (parted) p                            p查看分区                                      
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdc: 214MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name  Flags
     1      17.4kB  10.0MB  9983kB               LH
     2      10.5MB  19.9MB  9437kB     
    

    删除分区

    (parted) rm 2                      删除第二个分区                                         
    (parted) p                                                                
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdc: 214MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name  Flags
     1      17.4kB  10.0MB  9983kB               LH
    

    非交互式创建分区

    parted  后面直接跟上内置的命令 就可以直接使用 实现非交互式创建
    parted  /dev/sdc  mktable gpt 
    parted  /dev/sdc  mkpart primary 0 10 ignore 
    parted  /dev/sdc  mkpart primary 10 20 
    parted  /dev/sdc  p
    [root@nfsnobody ~]# parted /dev/sdc p
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdc: 214MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name  Flags
     1      17.4kB  10.0MB  9983kB               LH
    [root@nfsnobody ~]# parted /dev/sdc mkpart LH 50 100
    Information: You may need to update /etc/fstab.                          
    [root@nfsnobody ~]# parted /dev/sdc print     显示磁盘的格式
    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdc: 107MB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system  Name     Flags
     1      17.4kB  50.0MB  50.0MB               primary
     2      50.3MB  99.6MB  49.3MB               primary
    

    增加swap

    故障案例  java程序占用 大量内存  开始使用swap  swap 不足
    增加swap
    查看swap信息  free -h

    [root@nfsnobody ~]# free -h
                 total       used       free     shared    buffers     cached
    Mem:          980M       275M       704M       236K        28M       132M
    -/+ buffers/cache:       114M       866M
    Swap:         767M         0B       767M  swap信息
    

    创建一个文件 成为swap

    dd创建   
    /dev/zero   不断输出 零
    /dev/null   黑洞
    if       input file     从哪里获取数据 (输入文件)
    of       output file    输出到哪里
    bs       block size     每次复制多少文件
    count                   复制多少次
    创建一个100M的文件

    [root@nfsnobody ~]# dd   if=/dev/zero     of=/tmp/100m     bs=1M count=100
    100+0 records in
    100+0 records out
    104857600 bytes (105 MB) copied, 0.441882 s, 237 MB/s
    [root@nfsnobody ~]# ll -h /tmp/100m   检查 
    -rw-r--r-- 1 root root 100M Aug 15 11:58 /tmp/100m   创建成功
    [root@nfsnobody ~]# file /tmp/100m
    /tmp/100m: data          现在的类型为data 数据块。
    

    让这个文件成为swap

    创建swap  让这个文件成为swap(格式化)

    mkswap
    [root@nfsnobody ~]# mkswap /tmp/100m   
    mkswap: /tmp/100m: warning: don't erase bootbits sectors
            on whole disk. Use -f to force.
    Setting up swapspace version 1, size = 102396 KiB
    no label, UUID=9ee16d10-5fab-495d-a5fd-697b74ca360e
    [root@nfsnobody ~]# file /tmp/100m         file命令显示这个文件的类型
    /tmp/100m: Linux/i386 swap file (new style) 1 (4K pages) size 25599 pages
    mkswap命令将文件类型格式化成swap格式
    

    激活swap分区

    swapon -s 显示swap的组成情况

    [root@nfsnobody ~]# swapon /tmp/100m   挂载(激活)
    [root@nfsnobody ~]# swapon -s
    Filename	Type	Size	Used	Priority
    /dev/sda2                               partition	786428	0	-1
    /tmp/100m                               file	102396	0	-2
    永久增加
    /etc/rc.local 
    /sbin/swapon /tmp/100m
    

    让添加的swap永久生效

    把命令放入/etc/rc.local 开机自启动文件中。
           将swapon  /tmp/100m此命令追加到 /etc/rc.local 
    写入/etc/fstab 文件中
    格式为:
    /tmp/100m    swap   swap   defaults    0 0

    显示系统中的uuid

    使用blkid 命令可以查看系统磁盘的uuid

    [root@nfsnobody ~]# blkid
    /dev/sda3: UUID="49bad9e9-cf33-4a15-ba84-4fd28e70bd29" TYPE="ext4"
    /dev/sda1: UUID="7426d0f3-56d6-4fa6-a1c3-f2c8632bfbb8" TYPE="ext4"
    /dev/sda2: UUID="46bc0a52-b13f-4845-8baa-90207849d5c5" TYPE="swap"
    /dev/sdb1: UUID="7101630b-b325-49d1-92b9-0a500c2a07f6" TYPE="ext4"
    

    未格式化出现的错误

    对磁盘进行一些操作的时候可能会提示没有格式化磁盘,需要格式化。

    [root@nfsnobody ~]# tune2fs -c0 -i0 /dev/sdc
    tune2fs 1.41.12 (17-May-2010)
    tune2fs: Bad magic number in super-block while trying to open /dev/sdc
    Couldn't find valid filesystem superblock.
    没有找到可用的文件系统
    
  • 相关阅读:
    《游戏改变世界》笔记
    2017第6周日
    换个角度看执行力
    怎样拥有执行力和高效能
    提高个人执行力的五个关键
    Apache服务器部署多个进程
    IE的Cookie目录和临时缓存目录的关系
    IE/Firefox/Chrome等浏览器保存Cookie的位置
    在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
    如何设置win7系统的文件夹为系统文件,从而隐藏文件夹
  • 原文地址:https://www.cnblogs.com/wenrulaogou/p/11987235.html
Copyright © 2011-2022 走看看