Linux 系统的磁盘分区_【all】
磁盘的存储逻辑结构
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.查看系统支持的类型:
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.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
磁盘格式化
格式化==>创建文件系统==>产生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
磁盘分区命令总结
分区: 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.磁盘与目录容量:
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 -->重新调整文件大小
Linux 系统的磁盘分区_【all】的更多相关文章
- linux系统查看磁盘分区使用空间
Df命令是linux系统以磁盘分区使用空间:df -hl
- 安装Linux系统的磁盘分区
●CentOS磁盘分区 分区顺序: "/"分区(逻辑) -> "/boot"分区(主分区) -> "swap"分区(逻辑) -& ...
- Linux 系统的磁盘设备_【all】
磁盘 ->RAID ->分区 ->格式化 ->挂载 基本的框架 a.硬盘的外部以及内部硬件结构,工作原理和读写原理b.RAID的划分(一块盘划分为一块或者多块的小虚拟磁盘,可以 ...
- 安装Ubuntu Linux系统时硬盘分区最合理的方法
无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在合 ...
- Linux系统的磁盘管理
Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...
- 在Linux,误删磁盘分区怎么恢复呢【转】
在我们运维工作中,频繁的操作,可能命令写入错误,造成磁盘分区的删除,那么应该怎么办呢?怎么恢复磁盘分区呢? 一不小心删除了磁盘分区.如下图,删除了sda磁盘的第一个分区,为系统boot分区,系统如果重 ...
- linux初学者-普通磁盘分区篇
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
- linux系统挂载磁盘
linux系统挂载磁盘 ## 将硬盘挂载到/mnt/disk1下 # 检查磁盘状态,确认分区 fdisk -l # 格式化磁盘(分区) mkfs.ext4 /dev/sda #根据机器上的命名 以sd ...
- Linux Shell查看磁盘分区,内存使用,CPU使用率
Linux Shell查看磁盘分区,内存使用,CPU使用率 #!/bin/bash #disk_used_rate Location=/dev/xvdb Disk_Used_Rate=$(df -h ...
随机推荐
- 在Linux系统安装Nodejs最简单步骤
一.去官网下载和自己系统匹配的文件 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通过 uname -a ...
- The version of SOS does not match the version of CLR you are debugging; SOS.dll版本不匹配; Dump文件不同环境mscordacwks.dll版本问题
The version of SOS does not match the version of CLR you are debugging 和 PDB symbol for clr.dll not ...
- ABP实战--修改语言配置XML至Json
从ABP官网下载的Zero的多语言配置默认是使用XML文件的,实际使用中XML是没有Json简洁明了的,所以我们将其修改为Json格式. 修改MyLocalizationConfigurer.cs文件 ...
- (转) Java我的高效编程之环境搭建
前言:刚毕业, 工作之余写博客有利于提高技术,更是能帮助人,接下来会认认真真写好每一篇博客.希望大家多多支持.废话不多说,马上开始.这是一篇环境搭建的博客. jdk+eclipse+svn+maven ...
- JAVA 导出 Excel, JS 导出 Excel
本介绍两种Excle导出方法: JAVA 导出 Excle, JS 导出 Excle 1, js 根据 html 页面的 table > tr > td 标签导出 js代码: //导出 v ...
- Hive学习之Locking
众所周知,数据库必须要能够支持并发.无论在任何时候,允许同一时刻,多个用户能够同时读取或写入.没有必要给用户提供API显示的获取锁,所以所有的锁都是隐式获取的. 在Hive中有两种类型的锁: 共享锁S ...
- WCF webHttpBinding协议上传接收文件
一般情况下wcf用webHttpBinding协议最多的场景就是前后端Json交互,会比较轻量级. 接收上传的文件也可以,不过要自己解析处理. 前端HTML很简单: <input type=&q ...
- Winfrom 基于TCP的Socket服务端 多线程(进阶版)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- [javaSE] 类型转换(1加1等于几)
打印 ‘a’+1,输出98,解释:’a’是char类型占2个8bit,1是int类型占4个,’a’字符会被自动强制转换为int类型对应ascii码表97 打印’1’+1,输出 50,解释:’1’是ch ...
- SSH框架中NoSuchMethodError: antlr.collections.AST.getLine()的解决方案
问题: 当配置好SSH框架后,使用Hibernate的Query功能时发生如下异常: NoSuchMethodError: antlr.collections.AST.getLine() 原因: St ...