• Linux基础_磁盘分区


     如果在系统中新增一块硬盘时,我们得完成下方的工作

    1:对磁盘进行分区

    2:对该分区进行格式化

    3:对新建好的文件系统进行检验

    4:创建挂载点

    一,磁盘分区

     # 为什么要进行磁盘分区

    1:更容易进行管理和控制系统(相关的文件和目录都在同一个分区中)

    2:系统的效率更高

    3:可以限制用户使用磁盘的大小

    4:更容易进行备份和恢复

    # 硬盘的逻辑结构

    一个硬盘在逻辑上可以分为块,磁道,磁柱,分区

    块:盘片上最小的寻址单位,一个块可存储一定字节的数据

    磁道:由一系列头尾相连的块组成的圆圈

    磁柱:由多个磁道重叠在一起,由具有相同半径的盘面上的磁道组成

    分区:分区由一组相邻的磁柱组成

    # Linux系统中硬盘的分区

    硬盘分区的分类:主分区,扩展分区,逻辑分区

    主分区:一个硬盘最多只能有4个主分区

    ## 利用 fdisk和partprobe命令来进行硬盘分区管理

    # fidsk

    # fdisk -l 设备名称(如/dev/sdb)
    [root@localhost 桌面]# fdisk -l /dev/sdb
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    -l    # 输出后面接的设备所有分区内容,当只输入fdisk -l时,输出系统中所有设备的分区
    
    
    # fdisk中的参数
    d    # 删除一个已经存在的分区 d=>delete
    l    # 列出已知分区类型 l=>list
    m    # 列出fdisk中所有的命令
    n    # 添加新分区
    p    # 打印分区表
    q    # 不保存更改就退出
    t    # 更改分区的系统ID
    w    # 将表写入磁盘并退出
    b    # 编辑BSD磁盘标签
    c    # 切换DOS兼容性标志
    o    # 创建新的空DOS分区表
    s    # 创建新的空Sun磁盘标签
    u    # 更改显示/输入单位
    v    # 验证分区表
    x    # 额外功能(仅限专家)

     # 找出可用磁盘文件名称 df

    [root@localhost 桌面]# df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2       14987656 7256016   6963640  52% /
    tmpfs             502068      76    501992   1% /dev/shm
    /dev/sda1         487652   34962    427090   8% /boot
    /dev/sr0         3824484 3824484         0 100% /media/CentOS_6.8_Final

     # 新建磁盘分区

     # 1 进入fdisk界面中

    [root@localhost 桌面]# fdisk /dev/sdb

    # 2 查看帮助(输入m)

    Command (m for help): m   
    Command action
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       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
       t   change a partition's system id
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit
       x   extra functionality (experts only)

     # 3 输入n新建一个分区

    Command (m for help): n
    Command action
       e   extended                    # 副分区(扩展分区,逻辑上的,只能一个)
       p   primary partition (1-4)     # 主分区(最多能创建4个)
    p                                  # 输入p来新建一个主分区
    Partition number (1-4): 1          # 输入1表示新建第一个主分区
    First cylinder (1-2610, default 1):     # 第一个不必输入分区编号,直接按下回车键(如若只创建一个分区,那么该分区从1-2610)
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G    ## 第一个分区为一开始的大小到5G

     # 4 查看当前分区信息

    Command (m for help): p            # 查看当前的分区信息
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x3329997a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         654     5253223+  83  Linux        # 此处为第一个分区
    Device      # 设备文件名称,
    Boot        # 表示是否为开机引导模块
    Start End      # 表示这个分区在哪个柱面号码之间,可以决定次分区的大小
    Blocks       # 以1K为单位的容量
    ID          # 
    System        # 所属系统

     # 5 创建第二个分区,并查看分区信息

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 2
    First cylinder (655-2610, default 655): 
    Using default value 655
    Last cylinder, +cylinders or +size{K,M,G} (655-2610, default 2610): +5G
    
    Command (m for help): p
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x3329997a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         654     5253223+  83  Linux
    /dev/sdb2             655        1308     5253255   83  Linux

     # 6 当根据上方操作新建了4个主分区后,打印当前分区情况(不能再新建主分区,只能创建4个主分区)

    Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         654     5253223+  83  Linux
    /dev/sdb2             655        1308     5253255   83  Linux
    /dev/sdb3            1309        1962     5253255   83  Linux
    /dev/sdb4            1963        2610     5205060   83  Linux

     # 7 删除一个分区

    # 删除一个分区
    Command (m for help): d
    Partition number (1-4): 4    # 输入要删除的分区的编号
    
    
    # 再次查看有没有删除分区
    Command (m for help): p
    (前面省略)
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         654     5253223+  83  Linux
    /dev/sdb2             655        1308     5253255   83  Linux
    /dev/sdb3            1309        1962     5253255   83  Linux

     # 8 创建扩展分区(在扩展分区中再新建分区)

    扩展分区:扩展分区只是逻辑上的概念,表示扩展分区将剩下的空间打包好了,可以再在扩展分区的基础上新建分区(扩展分区本身不用来存储文件,就是一个逻辑上的概念)

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    e        # 选择创建扩展分区
    Selected partition 4
    First cylinder (1963-2610, default 1963): 
    Using default value 1963
    Last cylinder, +cylinders or +size{K,M,G} (1963-2610, default 2610): 
    Using default value 2610
    
    
    # 再次查看当前新建的扩展分区
    Command (m for help): p
    (前面省略)
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         654     5253223+  83  Linux
    /dev/sdb2             655        1308     5253255   83  Linux
    /dev/sdb3            1309        1962     5253255   83  Linux
    /dev/sdb4            1963        2610     5205060    5  Extended

    # 9 再扩展分区的基础上新建分区

    Command (m for help): p
    (前面省略)
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         654     5253223+  83  Linux
    /dev/sdb2             655        1308     5253255   83  Linux
    /dev/sdb3            1309        1962     5253255   83  Linux
    /dev/sdb4            1963        2610     5205060    5  Extended
    /dev/sdb5            1963        2094     1060258+  83  Linux        # 扩展分区上新建的分区(称为逻辑分区)

    # 10 保存分区

    Command (m for help): w                        # 保存分区
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@localhost 桌面]# partprobe             # 更新当前分区
    Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.
    [root@localhost 桌面]# ls /dev/sdb            # 查看分区情况
    /dev/sdb    
    二,格式化

     # mkfs

    # 2 多种格式化方法
    root@localhost 桌面]# mkfs
    mkfs          mkfs.ext2     mkfs.ext4     mkfs.msdos    
    mkfs.cramfs   mkfs.ext3     mkfs.ext4dev  mkfs.vfat
    # 3 格式化分区例子 格式化sdb3
    [root@localhost 桌面]# mkfs.ext4 /dev/sdb2
    mke2fs 1.41.12 (17-May-2010)
    文件系统标签=            # 指的是分区的名称
    操作系统:Linux
    块大小=4096 (log=2)        # block的大小设置为4K
    分块大小=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    328656 inodes, 1313313 blocks        # 该行决定inode/block数量
    65665 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=1346371584
    41 block groups
    32768 blocks per group, 32768 fragments per group
    8016 inodes per group
    Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736
    
    正在写入inode表: 完成                            
    Creating journal (32768 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成
    
    This filesystem will be automatically checked every 24 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    
    # -t:可以接文件系统进行格式,如ext2

    # mke2fs 可以用来指定格式化时的的各项参数

    [root@localhost 桌面]# mke2fs -j -L "doaoao1" -b 2048 -i 8192 /dev/sdb3 
    mke2fs 1.41.12 (17-May-2010)
    文件系统标签=doaoao1
    操作系统:Linux
    块大小=2048 (log=1)
    分块大小=2048 (log=1)
    Stride=0 blocks, Stripe width=0 blocks
    656880 inodes, 2626626 blocks
    131331 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=540016640
    161 block groups
    16384 blocks per group, 16384 fragments per group
    4080 inodes per group
    
    # 卷标设置为doaoao1
    # block大小指定为2048
    # 每8192bytes分配一个node
    # 构建journal为EXT3文件系统
    # 格式化分区 /dev/sdb3 
    三,磁盘检验

     # fsck

    -t    # 
    -A    # 依据/etc/fstab的内容,将需要的设备扫描一遍
    -a    # 自动修复检查到的有问题的扇区
    -y    # 与a类似
    -C    # 可以再检验过程中使用一个直方图来显示目前进度
    
    EXT2/EXT3的额外功能
    -f    # 强制检查
    -D    # 针对文件系统下的目录进行优化配置
    

    # 检验 /dev/sdb2
    [root@localhost 桌面]# fsck -Cf /dev/sdb2 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 /lost+found未找到.创建<y>? (下面省略)

     # badblocks

    用来检擦硬盘或者软盘扇区有没有环轨的命令 

    [root@localhost 桌面]# badblocks -xxx [设备名称]
    -s    # 在屏幕上列出进度
    -v    # 可以在屏幕上看到进度
    -w    # 使用写入的方式来测试

    # 例子

    [root@localhost 桌面]# badblocks -sv /dev/sdb2
     四,挂载/卸载

     # 挂载

    [root@localhost 桌面]# mount /dev/sdb2 /test_sdb1/
    [root@localhost ~]# mkdir /test1                // 创建用来挂载的文件夹
    [root@localhost ~]# mkdir /test2                // 创建用来挂载的文件夹
    [root@localhost ~]# mkdir /test3                // 创建用来挂载的文件夹
    [root@localhost ~]# mount /dev/sdb3 /test1/        // 挂载
    [root@localhost ~]# mount /dev/sdb3 /test2/
    [root@localhost ~]# mount /dev/sdb3 /test3/
    [root@localhost ~]# mount /dev/sdb3 /opt/
    [root@localhost ~]# df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2       14987656 4414456   9805200  32% /
    tmpfs             502068     224    501844   1% /dev/shm
    /dev/sda1         487652   34962    427090   8% /boot
    /dev/sdb2        5039624   10248   4766716   1% /test_sdb1
    /dev/sdb3        5039624   10264   4766700   1% /test1
    /dev/sdb3        5039624   10264   4766700   1% /test2
    /dev/sdb3        5039624   10264   4766700   1% /test3
    /dev/sdb3        5039624   10264   4766700   1% /opt

    # 当在挂载目录/opt下创建一个文件时,其它挂载目录下也会跟着创建

    # 进入目录/opt/
    [root@localhost ~]# cd /opt/
    
    # 在/opt/下创建一个文件a.txt
    [root@localhost opt]# touch a.txt
    [root@localhost opt]# cd
    [root@localhost ~]# ls /opt/
    a.txt  lost+found
    [root@localhost ~]# ls /test1/
    a.txt  lost+found
    [root@localhost ~]# ls /test2/
    a.txt  lost+found
    
    # 将文件a.txt删除
    [root@localhost ~]# rm -rf /test1/a.txt
    [root@localhost ~]# ls /opt
    lost+found
    [root@localhost ~]# ls /test3
    lost+found
    
    # 在/opt/下创建一个文件abc.txt
    [root@localhost ~]# touch /test3/abc.txt
    [root@localhost ~]# ls /opt/
    abc.txt  lost+found
    [root@localhost ~]# ls /test2/
    abc.txt  lost+found

    # 卸载

    [root@localhost ~]# umount /test3
    [root@localhost ~]# df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2       14987656 4414480   9805176  32% /
    tmpfs             502068     224    501844   1% /dev/shm
    /dev/sda1         487652   34962    427090   8% /boot
    /dev/sdb2        5039624   10248   4766716   1% /test_sdb1
    /dev/sdb3        5039624   10264   4766700   1% /test1
    /dev/sdb3        5039624   10264   4766700   1% /test2
    /dev/sdb3        5039624   10264   4766700   1% /opt

    ## 当opt的源设备被卸载时,再在opt中新建文件时,系统就会去找opt的上一层目录(根目录),看根目录挂载在哪个分区中,将新建的文件放在该分区中

    [root@localhost ~]# umount /opt
    [root@localhost ~]# ls /opt
    rh
    [root@localhost ~]# touch /opt/abc.txt
    [root@localhost ~]# ls /opt
    abc.txt  rh
    [root@localhost ~]# 
    [root@localhost ~]# df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/sda2       14987656 4414480   9805176  32% /            # 根目录在sda2上
    tmpfs             502068     224    501844   1% /dev/shm
    /dev/sda1         487652   34962    427090   8% /boot
    /dev/sdb2        5039624   10248   4766716   1% /test_sdb1
    /dev/sdb3        5039624   10264   4766700   1% /test1
    /dev/sdb3        5039624   10264   4766700   1% /test2

    待补充...

  • 相关阅读:
    python排序函数sort()与sorted()区别
    python中lambda的用法
    Python中如何获取类属性的列表
    百度编辑器UEditor源码模式下过滤div/style等html标签
    【Flask】关于Flask的request属性
    python json.dumps() json.dump()的区别
    SQLAlchemy技术文档(中文版)(全)
    Flask中'endpoint'(端点)的理解
    SqlAlchemy个人学习笔记完整汇总-转载
    MySQL数据类型和常用字段属性总结
  • 原文地址:https://www.cnblogs.com/Doaoao/p/10344436.html
Copyright © 2020-2023  润新知