Linux 系统的磁盘分区_【all】

磁盘的存储逻辑结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
1.主引导扇区(446+64+2)
    MBR(主引导记录)0磁头0磁道的第一扇区  446字节    -->存放系统的引导程序,同Windows
    剩下的64字节,分区表(每个分区16字节),故最多有4个主分区
        3个主分区+1个扩展分区(1个扩展分区可以有多个逻辑分区)
            扩展分区不能直接使用,逻辑标号从5开始
        /dev/sda1 + /dev/sda2 + /dev/sda3 + 扩展分区内的逻辑分区/dev/sda5
    剩下的2字节作为磁盘的结束标志55AA
2.分区16字节的内容说明
    0x80   表示分区激活
    0x83   表示Linux类型
 
3.如何备份MBR? 如何恢复MBR
    dd if=/dev/sda of=/dev/mbr.bin bs=512 count=1   -->备份MBR(0磁头0磁道1扇区 前446字节)
    od -xf /dev/mbr.bin                             -->查看备份内容
    dd if=/dev/mbr.bin of=/dev/sda bs=512 count=1   -->恢复MBR    
 
4.磁盘分区总结
    1.为什么?分区跟我们买房子隔离出来卧室和客厅一样,可以在不同的分区存放不同的数据,一个分区满了亦不会对其他的分区造成影响。                   
        当然直接格盘格式化硬盘也是可以的
        实质? 修改分区表!!!
    2.分区的重点:
        1.分区的实质就是对446自己后面的64byte的分区进行设置。即主要划分起始以及结束磁头号,扇区号和柱面号
        2.分区工具有
            fdisk(小于2T)                 ----->首选
            parted(适合大于2T,也可以分区小于2T)
                注意:fdisk和parted分区的结果 互不兼容
        3.一块磁盘的分区表仅有64bytes大小,每个分区要占用16个字节,因此一个磁盘仅支持4个分区表信息
            即主分区+扩展分区总量不超过4个(磁盘本身限制),且一个硬盘只能有一个扩展分区(操作系统限制)
        4.磁盘分区是安装柱面划分的
        5.扩展分区不能直接使用,还要在扩展分区的基础上划分逻辑分区擦洗
        6.扩展分区有自己的分区表,因此扩展分区的逻辑分区可以有多个
        *.磁盘使用前一般都需要进行分区。
            磁盘分区主要有主分区,扩展分区,逻辑分区
            给磁盘分区实际上就是划分柱面号和扇区号
       3.主分区
        主分区是磁盘必须存在的分区,一般为磁盘的第一分区,可以安装操作系统
    4.扩展分区
        除了主分区外,剩余的磁盘空间就是扩展分区了,扩展分区是一个概念,实际上是看不到的
        严格意义上,不算分区,只是一个连接,起到了指向的作用
        是一个虚拟的小硬盘,但是没有MBR,只有扩展分区列表,没有64bytes限制
        一个硬盘只能一个扩展分区,操作系统限制
    5.逻辑分区
        在扩展分区上面,可以创建多个逻辑分区。
        逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”。
        并不能直接单独划分逻辑分区,只能存在于扩展分区内。
        逻辑分区的编号默认从5开始
        实际应用:主分区和逻辑分区都可以用。安装操作系统在主分区,数据在逻辑分区
    6.磁盘分区的注意事项
        1.任意多个主分区,但要求  1《 主分区数量《4
        2.扩展分区和主分区组合, 但要求  2《 主分区+扩展分区数量《 4
        3.如果要分成4个磁盘分区,最多可以是
            p+p+p+p剩下空间保留
            p+p+p+e(1l)剩下空间保留
            p+p+e(2l)剩下空间保留
            p+e(3l)剩下空间保留
                注意:因为操作系统的限制,扩展分区最多1个
            如果对磁盘进行了4P或3P+E后,即使磁盘还有未分配的空间,那么这部分空间也无法使用了(分区表已满)
                可以划分多个逻辑分区进行占用
        4.对于磁盘分区,实际上就是修改64位的分区表,分区与对应的数据没有关系,因此理论上调整分区大小,不会删除分区内的数据
        5.特殊说明:磁盘也可以不分区,直接格式化使用,但是不推荐
    7.磁盘分区设备名
        Linux系统中,通过设备名来访问设备的,设备名存放在"/dev"目录中
            设备名称的定义规则如下:
            --系统的第一块IDE接口的硬盘称为/dev/hda
            --系统的第二块IDE接口的硬盘称为/dev/hdb
            --系统的第一块SCSI接口的硬盘称为/dev/sda
            --系统的第二块SCSI接口的硬盘称为/dev/sdb
                SATA,SAS都是sd开头
            每个分区则使用磁盘名称加对应的数字编号表示:
            --系统的第一块IDE接口的硬盘的第1个分区称为/dev/hda1
            --系统的第二块IDE接口的硬盘第5个分区称为/dev/hda5
            --系统的第一块SCSI接口的硬盘第1个分区称为/dev/sda1
            --系统的第二块SCSI接口的硬盘第5个分区称为/dev/sdb5
        注意:1.Linux下没有盘符的概念,对磁盘设备进行操作,需要使用磁盘设备名;
                  读取磁盘设备内容,需要把创建在分区或逻辑卷上的文件系统挂载到指定的目录上。
              2.Linux系统上划分分区后,还要在分区上创建文件系统
    8.Linux系统对分区的要求:
        1.最少要有/ 以及swap 2个分区
        2.swap(交换分区):虚拟内存 大小=1.5*物理内存容量
        3.设置独立的/boot分区,大小100-200M
        综上:常见的服务器分区方式:/boot / swap
    9.文件系统(分区后创建文件系统)
        0.创建文件系统实际上是在创建了一堆inode和block
        1.什么是文件系统
            概念:一个存储设备上的数据和元数据进行组织的一种机制。
                 基于存储设备的
                 是在一个磁盘(包括U盘)或分区上组织文件的方式和方法。
            目的:易于查询和存取数据      
                ===>磁盘没有文件系统也就无法存数数据
            常见的文件系统:
                Linux:      ext2,ext3,ext4,xfs(数据库,门户) reiserfs(先进的日志机制)
                Windows:  NTFS,FAT,fat32等

磁盘分区总结

1.文件系统是一个对存储设备上的数据和元数据进行组织的一种机制
2.分区必须格式化(等价创建文件系统),创建文件系统才能存放数据
3.一个分区只能有一种文件系统

文件系统选型简单介绍

1
2
3
4
5
6
7
8
9
10
1.查看系统支持的类型:
    ls -l /lib/moduleslol/2.6.32-279.el6.x86_64/kernel/fs/
2.类型介绍
    a.xfs  有数据库Mysql业务
    b.ext4 视频下载,流媒体,数据库,小文件(系统默认)
3.查看ext4的内部                   
    创建文件系统实际上是在创建了一堆inode和block   
[oot@omc fs]# dumpe2fs /dev/sda1
    et4文件系统的组成
    超级块  块组1  块组2  块组3  块组4(对inode进行分组)

企业生产场景磁盘分区方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1.fdisk分区       --> 小于2T
    1.交互式
        1.fdisk -cu /dev/sdb         -->更改柱面到扇区
            m     n    p   w    d  q  t  l
        2.将修改后的内容告诉内核,否则需要重启
            partprobe /dev/sdb
        3.查看
            ll /dev/sd*
             ==>fdick -l
    2.非交互式划分
        1.     echo -e "n\np\n1\n\n+100M\nn\np\n2\n\n+100M\nw"|fdisk /dev/sdb
        2.将修改后的内容告诉内核,否则需要重启
            partprobe /dev/sdb
        3.查看
            ll /dev/sd*
             ==>fdick -l
 
2.parted分区(pgt分区)     -->即时生效,创建了以后就直接产生,可以非交互是的创建
        --> 大于2T,且使用gpt(全局唯一标示磁盘分区表格式)的分区表
        --> MBR 的最大可循地址为2T
    1.  交互式:
        1.parted /dev/sdb mklabel gpt  -->更改分区表
             -->help写出帮助
            mkpart primary 0 10         -->0-10M 主分区
            rm 2                         -->删除,
        2.将修改后的内容告诉内核,否则需要重启
            partprobe /dev/sdb
        3.查看
            ll /dev/sd*
             ==>fdick -l
 
    2.    非交互是的创建
        1.创建
            parted /dev/sdb mklabel gpt yes
              parted /dev/sdb mklabel primary ext4 0 100 ignore
              parted /dev/sdb mklabel logic ext4 0 100 ignore
          2.将修改后的内容告诉内核,否则需要重启
                partprobe /dev/sdb
            3.查看
                ll /dev/sd*
                 ==>fdick -l

磁盘格式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
格式化==>创建文件系统==>产生inode和block==>可以更改inode和block大小
1.格式化:
    mkfs.ext4 -I 4096 -b 4096 /dev/sdb2 
    mkfs -t ext4 -I 4096 -b 8192 /dev/sdb1
2.格式化后系统会自检
    取消自检
        tune2fs -c -1 /dev/sdb1
3.挂载磁盘设备==>文件系统入口
     mount /dev/sdb1 /mnt
         复杂:mount -t ext4 -p loop,noatime,noexec /dev/sdb1 /mnt
4.查看挂载磁盘 
        df -h
           ==>cat /proc/mounts
5.开机自动挂载,写入到/etc/fstab
    /dev/sdb1  /mnt  ext4 defaults 0 0

 

磁盘分区命令总结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
分区:  fdisk  parted  
        实质:   -->修改0磁头0柱面1扇面的后面的64个字节分区表
格式化:mkfs.ext4 /dev/sdb1
        tune2fs -c -1 /dev/sdb1
        实质:   -->创建文件系统(生成各种块,inode,block)   
 
    磁盘检查:不要轻易使用,一般针对卸载状态的,有问题的磁盘
        fsck -C -f -t ext4 /dev/sda           
 
挂载:  mount /dev/sdb1 /mnt
        实质:   -->为文件系统指定访问入口
   开机自动挂载(编辑2个文件都可以自动挂载,推荐fstab):
           /etc/fstab
               /dev/sdb1  /mnt  ext4 defaults  0  0
               允许的数字是0, 1, 和2。
                0: 不会被fsck utility检查。,
                1: root文件系统应该拥有最高的优先权
                2: 所有其它的文件系统,如果你想让它被check的话,应该写成2
           /etc/rc.local
               /dev/sdb1  /mnt  ext4 defaults  0  0
   测试挂载: mount       -->直接输入即可
              mount  -a   -->加载/etc/fstab
   检查挂载情况:df -h  /  df -hi 
                 cat /proc/mounts

 

文件系统的简单操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
1.磁盘与目录容量:
    df -hi   文件系统的整体磁盘使用情况
    du -sh   评估文件系统的磁盘使用
2.连接文件
    ln
3.磁盘参数更改(以下内容为了解内容)
    1>mknod
        mknod /dev/sdb2 b 22 10
        ls -l /dev/sdb2
    2>e2label   将/dev/sdb2卷标改为 mytest
        dump2fs -h /dev/sdb2
        e2label /dev/sdb2 "hello"
        dump2fs -h /dev/sdb2
    3>tune2fs 列出/dev/sdb2的superblock内容
        tune2fs -l /dev/sdb1
4.设置开机挂载
    1>开机挂载/etc/fstab /etc/mtab
        /dev/sdb2每次开机都自动挂在到/tmp/sdb2
        编辑:  vi  /etc/fstab
        写入:  /dev/sdb2 /tmp/sdb2 ext4 default 0 0
    2>特殊设备loop挂载
        mount -o loog /root/centos 5.2_x86_64.iso /tmp
        df
    3>新建大文件以制作loop设备文件
        dd if=/dev/sdb2 of=/home/loopdev bs=2M  count=512
        mkfs.ext4 /home/loopdev
        mount -o loop /home/loopdev /media
 
5.交换内存空间(swap)的构建   -----Java内存溢出(了解)
    1>使用物理分区构建swap
        mkswap /dev/sdb2
        free
        swapon /dev/sdb2   -->增加交换分区
        free
    2>使用文件构建swap
        dd if=/dev/zero  of=/tmp/swap bs=2M count=128
        ls -lh /tmp/swap
        mkswap /tmp/swap
        free
        swapon /tmp/swap
        free
        swapon -s
        swapoff /tmp/swap
        swapoff /dev/sdb2
        free
6.生产场景磁盘命令使用案例            (了解,不重要)
    0> e2fsck        -->检查ext2/ext3/ext4的磁盘信息
    1> fsck -n /dev/sdb2
    2> fdisk -s /dev/sdb2
    3> resize2fs /dev/sdb2     -->重新调整文件大小
posted @   小a玖拾柒  阅读(1060)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· .NET Core GC压缩(compact_phase)底层原理浅谈
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
点击右上角即可分享
微信分享提示