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.一个分区只能有一种文件系统html
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 -->从新调整文件大小