MBR: Master Boot Record, 主引导记录又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。

 

主分区:分区信息记录在DPT中的分区,而且只能将主分区设置为活动分区.由于DPT只有4个16字节所以只能记录4个分区信息,所以一块MBR硬盘只能接受4个主分区.


扩展分区:引用额外的分区表,可以在扩展分区中继续分配逻辑分区以扩大磁盘的分区数量.扩展分区不能格式化创建文件系统,只能在扩展分区下继续新建逻辑分区.在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。

 

GPT: 全局唯一标识分区表(GUID Partition Table)是一个实体硬盘的分区表的结构布局的标准硬盘接口,支持更多的磁盘分区表

 

fdisk /dev/sda 格式化硬盘
    d: 删除
    n: 新建 子命令: e,创建扩展分区; p,新建逻辑分区
    p: 列出
    t: 调整分区ID
    l: 列出内核支持的分区ID
    w: 保存退出
    q: 不保存退出

wKiom1PIiNnxMIGmAANWyY2QD0o569.jpg

 

 

文件系统:是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。 

 

文件系统常见文件系统类型:
基本文件系统:Ext2, Ext3, Ext4, Reiserfs, xfs, JFS, vfat, NTFS
交换分区:swap
集群文件系统:GFS2, OCFS2
网络文件系统:NFS, smbfs(CIFS)
光盘:iso9660

raw: 没有格式化创建文件系统的硬盘

 

Linux系统下常见的文件目录

    /bin, /sbin  默认存放二进制程序
         /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
    /lib, /lib64, /usr/lib, /usr/lib64   默认存放库文件目录
    /etc/   默认存放配置文件目录
    /media, /mnt   临时挂载目录
    /dev     设备文件目录
    /proc, /sys   内核信息输出目录
    /home, /root    用户的家目录
    /var      存放经常
    /opt, /misc
    /srv   默认服务存放的目录
    /tmp   临时文件目录
    /boot   启动文件信息目录
    /usr    


重载硬盘分区:

CentOS 5: partprobe

CentOS 6: partx, kpartx 重读硬盘分区
    kpartx -l /dev/sda
    kpartx -af /dev/sda
    partx -a /dev/sda
 

 wKioL1PIx3aARDtDAAHxOg1k3Gw443.jpg


格式化:是指对磁盘或磁盘中的分区(partition)进行初始化或创建文件系统的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。又分为高级格式化和低级格式化:多数情况下,低级格式化,往往是指硬盘的填零操作;高级格式化又称逻辑格式化,它是指根据用户选定的文件系统,在磁盘的特定区域写入特定数据,以达到初始化磁盘或磁盘分区、清除原磁盘或磁盘分区中所有文件的一个操作。

 

Linux系统根据版本默认使用的文件系统: ext2,3,4

创建文件系统:

mkfs: 指定文件系统类别,调用mkfs.ext2命令
     -t fstype /dev/somedevice   #fstype 文件系统类型

    # mkfs -t ext2 /dev/sda3


 

mke2fs 功能更强大,与mkfs,mkfs.ext2调用命令的关系
Ext4: mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
Ext3: mkfs -t ext3 = mkfs.ext3 = mke2fs -t ext3 = mke2fs -j

mke2fs: 配置文件在etc/mke2fs.conf

常用选项
     -t {ext2|ext3|ext4} 选定文件系统类型
     -j : 相当于-t ext3
     -L Label:卷标
     -b {1024|2048|4096}:指定块大小
     -i #: #个字节给预留一个inode,相当于数据块和inode块的比例
     -N #: 直接指定预留多少个Inode,
     -I #:Inode大小
     -m #:预留管理员的空间百分比,默认为5

     -O:指定分区特性

wKioL1PIiwmjtFrZAAI52u4ZDkA006.jpg 


e2label:分区卷标操作命令
     e2label /dev/SOMEDEVICE: 查看卷标
     e2label /dev/SOMEDEVICE  Label: 设定卷标

 wKiom1PIirWhlQ75AAAq3IZlHNM548.jpg

blkid /dev/SOMEDEVICE: 查看设备的属性,UUID(分区ID号)和TYPE(文件系统类型)

 wKioL1PIjC2TIv4YAABc-ELFlkA119.jpg

dumpe2fs:磁盘块数据参看命令
     -h: 仅查看超级块中保存的信息

 wKioL1PIjGCQ9-jPAAERNk1n1Rc956.jpg

tune2fs: 调整查看超级块信息
     -l: 查看超级块中的信息

wKioL1PIjOnDhjtkAAFiWOSAf-U222.jpg
     -L label: 设定卷标
     -m: 预留管理员的空间百分比,默认为5

wKioL1PIjUjzaWzNAABZmIqNA2c559.jpg

     -j: 如果原来的文件系统为ext2, -j能够将其提升为ext3
     -o [^]mount-options[,...]:设定其默认挂载选项,加^表示关闭
     -O [^]feature[,...] :调整分区特性

wKioL1PIjoWxu1D0AAGPp9nmfTo458.jpg      #关闭huge_file特性

 

fsck: 文件系统检测修复
     -t fstype :

wKioL1PIjv-Spnw1AAFEHZpDIBI697.jpg     
     -a: 自动修复错误
     -r: 交互式修复错误
     -f: 强行检测

 

e2fsck:
     -f: 强制检测
     -y: 对问题自动回答为yes

 

交换分区:在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存.SWAP分区只是临时的解决办法.

 

mkswap 格式化文件为交换分区
      -L label:指定交换分区的卷标

swapon 启动交换分区
      -a: 所有
      -p #: 指定优先级

swapoff 停用交换分区
      -a

hdparm :获取IDE和SATA硬盘的信息
     -i 从CPU上获取
     -I 直接从硬盘上读取
     -g 显示磁盘的布局信息
     -t 测试硬盘性能
     -T

/proc/partitions   分区
/proc/meminfo 内存信息
/proc/filesystems  已识别的文件系统类别 nodev模拟的文件系统


挂载:指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。内核启动时只启动/根分区所有文件都需要与/根分区关联才能使用,把文件与/根分区相关联

挂载条件:

1、挂载点必须是一个目录。
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。

卸载条件: 空闲时可以被卸载.

 

mount: 直接使用,可显示当前系统所有已挂载的设备.还可以通过查看文件/proc/mounts, /etc/mtab查看

mount [options] [-t fstype] [-o option] 设备 挂载点

wKioL1PIkG2hE2QnAAC8DpnIJIA001.jpg

 

 [options]: 命令的选项
 -o options: 挂载时启用分区特性,

[option]常用选项:
     -t fstype:
     -r: 只读挂载

wKiom1PIlB6yQFBnAAApTJLbAKw028.jpg

     -w: 读写
     -L lable: 以卷标指定, LABLE=“label”
     -U UUID:以UUID指定挂载设备,UUID=“UUID”
     -a: 自动挂载所有(/etc/fstab文件中)支持自动挂载的设备

 

-o [options]启用分区特性的选项,多个选项之间用,号隔开
     async: 异步I/O 数据的写入在内存上操作,有内核延迟统一写入.
     sync: 同步I/O
     noatime|atime: 建议noatime 是否更新写入文件和目录访问时间戳
     auto|noauto: 是否能够被mount -a选项自动挂载;
     diratime|nodiratime: 是否更新目录的访问时间戳;
     exec|noexec:是否允许执行其中的二进制程序;
     _netdev: 阻止网络启动之前,自动挂载网络设备
     group:是否允许这个组普通用户挂载
     remount: 重新挂载
     acl: 启用facl,文件访问控制列表
 wKioL1PImEaD7sikAAMCWgfPI7U066.jpg

 

    # tune2fs -o mount-option 设备   启动mount命令的-o options特性
    # tune2fs -o ^mount-option 取消

 

光盘:

     /dev/cdrom, /dev/dvd, /dev/sr0
         [-t iso9660]

 

查看占用挂载的设备的进程:

fuser -v 挂载点  查看访问硬件的用户
fuser -km 挂载点   移除挂载点的用户

 

取消挂载
umount 设备|挂载点
 

df: 磁盘空间使用状态报告df [options] [device]
     -h: human-readable换算为M显示大小
     -i: inode 查看元数据区信息
     -P: POSIX格式输出文本

 du: 评估文件占用磁盘空间的情况
     -s 查看整个目录占用大小
     -h 以k,M,G大小显示


开机自动挂载:
 /etc/rc.d/rc.sysinit:系统初始化脚本,开机被mount命令读取!
  其中一个功能:挂载/etc/fstab文件中定义的文件系统挂载表

wKiom1PImCOyzbD3AAHg9Lj-BR4967.jpg

从左至右分别为:
要挂载的设备:设备文件、LABEL=, UUID=
挂载点:swap没有挂载点,挂载点为swap
文件系统类型
挂载选项:多个选项间使用逗号分隔;
转储频率:(备份频率)
 0:从不备份
 1:每日备份
 2:
自检次序:
 0: 不自检
 1:首先自检,通常只能被/使用;
 2:

 

查看内存空间使用状态也可以查看/proc/meminfo文件:
free
     -m: 显示结果以MB为单位
     -g: 显示结果以GB为单位

dd命令:创建本地回环设备,在设备级别复制文件,把文件模拟成硬件.可以用作硬盘的填零操作.

         dd if=input_file of=output_file  文件复制
         dd if=input_file of=output_file bs=#[b|k|m|g] count=#   bs一次复制多大, count复制多少次

         dd if=/dev/cdrom of=/tmp/linux.iso    磁盘对拷,制作光盘镜像
         dd if=/dev/sda of=/tmp/myfile bs=512 count=1     复制MBR表,备份MBR表
         dd if=/dev/zero of=/dev/sdb bs=500 count=1      复制一个不存在的文件,到一个新设备,清楚磁盘所有分区,

  


链接文件:为源文件提供多条访问途径.
ln [-s] SRC LINKFILE
     硬链接:将文本形式的链接存储在用于存放文件信息的磁盘上的标准数据结构之中(inode)。指向同一个Inode的磁盘块访问路径,删除被硬连接文件,要同时删除文件的所有硬连接文件
                      硬链接不能跨分区;
                      不能对目录创建硬链接;
                      硬链接会改变文件被链接的次数;
                      硬链接与原文件指向同一个inode
     符号链接:-s,路径指向,记录文件在文件系统中的访问路径,.特性相当于windows的快捷方式
                      符号链接可以跨分区;
                      符号链接文件跟原文件不同一个inode;
                      可以对目录创建符号链接;
                      符号链接不会改变原文件被链接的次数;

  

 

文件数据处理工具:
压缩工具:
 gzip压缩命令, gunzip = gzip -d解压命令, zcat不解压直接查看,生成文件的后缀:.gz
              -c: 将压缩结果送往标准输出,可以使用重定向将其保存为压缩文件,从而保留原文件;
 bzip2, bunzip2 = bzip2 -d, bzcat,后缀:.bz2

 xz, unxz = xz -d, xzcat,后缀:.xz

通用选项: -#: 指定压缩比,1-9

 

归档工具:

 tar [options] -f file.tar File1 ...
          -c: 创建归档
          -x: 展开归档
          -t: 不展开而直接查看被归档的文件
          -v: 处理过程中输出相关信息

 wKioL1PIuQqSe9EEAADHpvYy708189.jpg

在tar中调用压缩命令

          -z: gzip
          -j: bzip2
          -J: xz

 

组合选项: 

          -zcf
          -zxf

          -jcf
          -jxf

          -Jcf
          -Jxf

wKioL1PIt7zidA3qAAC00-3KADc356.jpg 

 

 cpio:可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道.

 

RAID: 独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称硬盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。

 Level: 仅用于标识RAID磁盘组合方式的不同
              raid0: 至少需要两块磁盘,没有容错能力,读写性能都提升,100%

              raid1: 至少需要两块磁盘,镜像,硬件容错能力,读性能提升,写性能下降,50%

              raid4: 至少需要三块磁盘,允许一块盘出错,读写性能提升,(n-1)/n 两块数据盘一块,效验盘 允许坏一块

              raid5: 至少需要三块磁盘,允许一块盘出错,读写性能提升,(n-1)/n 三块交叉分布数据块和效验数据块 允许坏一块

              raid6: 至少需要四块磁盘,允许两块盘出错,读写性能提升,(n-2)/n允许坏两块

              raid10: 至少需要四块磁盘,允许不同组内各坏一块盘,读写性能提升,50% 先做0再做1
              raid01                                                             先做1再做0

              jbod: 普通方式将多块硬盘连接到一起                                                          

 

md: 可以组合任何块设备,为软raid
mdadm, 模式化的工具,软raid命令工具,/etc/mdadm.conf 配置文件   linux 软raid模拟环境要将分区格式改为linux raid auto代码为fd
mdadm [mode] <raiddevice> [options] <component-devices>
     模式   raid设备名  参数选项   创建raid的硬件
  [mode]

       -A:装配模式,加入一个以前定义的阵列.

       -C:创建模式创建一个新的阵列,每个设备具有超级块

                -n #: 用于创建RAID设备的设备个数;
                -x #: 热备磁盘的个数;
                -l 级别:
                -a yes: 自动为创建的raid设备创建设备文件;
                -c Chunk_Size: 指定分块大小,默认为512,单位为KB

                # mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}

       -F:监控模式 监控RAID的状态

        管理模式可以省略:-f,模拟损坏 -r,模拟拔掉 -a,替换坏掉的
       -S:   移除RAID盘

wKioL1PLUzqBN3TaAAA3_CaqD-c175.jpg

 

1,创建一个10G的RAID0,

#前面已经创建了分区sdb1和sdb2不再演示

#因为要做软RAID分区必须为FD格式,首先修改分区类型

wKioL1PIvVLj8fTfAANiAHB8Lts049.jpg

 

#使用mdadm创建分区:
#指定创建的设备名md0;
#-l 指定级别(raid0);
#-n 选择设备2个分别是sdb1、sdc1;
wKioL1PIwC_B-jJ6AAGHb8i0YiE914.jpg

#格式化Raid设备md0

#挂载到/mydata目录

wKiom1PIwr7i0e6QAANaEhHmkmQ130.jpg

 

 

2测试RAID可用性mdadm命令不能模拟raid0损坏
#这里需要模拟raid损坏并查看其效果

#新建一个RAID1,

wKiom1PIzbzijnggAALxKT-Q3bs734.jpg

#查看RAID信息有一个热备盘

wKioL1PIzy-zX6CIAAJkNuIjBBc674.jpg

#把指定设备模拟损坏-f

#此时热备盘自动替换已损坏的硬盘

wKiom1PIzuGywGdrAALGuQ9F3Xw711.jpg


-r #把损坏的设备移除

wKiom1PIzyqDCuRDAAIbRBxkt4c870.jpg


-a #新增一个设备到阵列中

wKiom1PIz2rCusBSAAHqstOqdQE998.jpg

 

   

 

   -D: 显示阵列的详细信息 --detail:

wKiom1PIwzvicwefAAIiuzXEQdU482.jpg           

      -S /path/to/raid_device: 停止指定的RAID设备

 


watch 跟踪命令执行过程
     -n #: 每隔#执行一次指定的命令;单位为秒钟
    使用格式:watch -n # 'COMMAND'


练习:创建一个大小为4G的RAID5;

给其添加一个空闲盘,模拟损坏等;
停止raid;


练习1:创建一个空间大小为10G的RAID5设备,要求其chunk大小为1024K,格式经为ext4文件系统,开机可自动挂载至/backup目录,并支持acl功能;
练习2: 创建一个可用空间大小为10G的RAID1设备,chunk大小为256K,要求其具有一个热备磁盘,开机自动挂载至/users目录;