inux 系统正常启动过程(以硬盘启动)
加电—>硬件检测(POST)—>读取硬盘的MBR—>运行boot loader加载内核
扇区:sector 磁道可以划分多个扇区,通常扇区大小固定为512字节
MBR:主引导记录,位于磁盘的0磁道0扇区(sector)
MBR 的前446 字节用于放boot loader(引导加载器)程序,后面64字节用来标示硬盘分区,每16字节标示一个分区,故一块硬盘只有4个主分区,最后2字节用于整体程序的封装码。
查看本系统上的已经被识别的所有磁盘以及分区对应列表
cat /proc/partitions
fdisk –l
# fdisk -l
Disk /dev/sda: 171.7 GB, 171798691840 bytes
255 heads, 63 sectors/track, 20886 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 5235 41945715 8e Linux LVM
/dev/sda3 5236 5300 522112+ 82 Linux swap / Solaris
/dev/sda4 5301 20886 125194545 5 Extended
/dev/sda5 5301 5787 3911796 83 Linux
Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
fdisk
fdisk /dev/sda 对磁盘设备进行分区
d delete a partition 删除一个分区
l list known partition types 列出已知分区的类型
m print this menu
n add a new partition 添加
p print the partition table显示当前的磁盘分区情况
q quit without saving changes 退出不保存
s create a new empty Sun disklabel
t change a partition's system id 改变一个分区的类型
82 Linux swap / So
83 Linux
5 Extended
8e Linux LVM
w write table to disk and exit保存退出
分区创建时候注意主分区和扩展分区
分区创建完成后此时是一个裸分区,只有格式化完好才能使用,也不能(指的是在一块已经使用的硬盘剩余空间下操作时,信硬盘可以识别)被系统立即识别,需要用命令partprobe
# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):1
First cylinder (1-5221, default 1): 回车选择默认
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221): +10G(自己只大小)
Command (m for help): p
Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1217 9775521 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
创建文件系统 (即格式化)
mkfs -t fstype /dev/sda5
mkfs -t fstype=mkfs.ext3
mkfs –t ext2 =mke2fs
mke2fs
-j 创建日志文件系统
-L 创建卷标通常是字符串(e2label /dev/sda5 不删数据也能改卷标
e2lable /dec/sda5 NEWLABLE)
-b 指定块的大小{1024|2048|4096}单位字节
-i 指定磁盘块的比例 byte/inode ratio 默认128
-N 直接指定inode ratio的个数
-m 默认为5 指的是磁盘大小的5% 预留给管理员
-c 创建文件系统时候 检查磁盘是不是有坏道
tune2fs 用来调整mke2fs
-j 把 ext2—> ext3
-l 列出一个分区的常见的文件信息
-L 创建卷标
-i指文件系统质检时间 N【d|m|w】
-c 指文件系统在挂着卸载都少次后开始自检(-1或者0表示关闭自检)
-m 在格式化完成后调整预留百分比
-o 设置此文件系统的默认挂载选项
挂载mount 不加选项时候 能显示所有挂载上的文件及其挂载路径
mount -t 必须指定被挂在的设备的文件系统类型,很多时候我们都省略了,这是因为mount在挂载时候自动调用了blkid
-n
mount –a 可以自动挂载/etc/fstab
-o rw,ro,exec (如果上面有二进制文件话默认执行),auto,nouser(禁止普通用户挂载此设备),async (异步数据写入)
mount -o loop /root/rhci.iso /mntcdrom (这挂载是镜像文件 当成本地环回设备使用)
mount –o remount,acl /dev/sda8 /mnt
swap –a 启用所有的交换分区用法同mount –a
卸载
umount
ejeck 可以使光盘自动卸载并弹出
如果在卸载时候发现有别的用户在使用该挂载目录,此时可以用fuser查看,并将其强制离开。
fuser –v /mount_point
fuser –km /mount_point
设备自动挂载
自动挂载{开机自动挂载(/etc/fstab),按需自动挂载(autofs 工具实现)}
/etc/fstab
这个文件包涵六个字段
/dev/vol0/root / ext3 defaults 1 1
/dev/vol0/home /home ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda3 swap swap defaults 0 0
每行从左到右分别标示
1 挂载的设备名
2 挂载点
3 文件系统类型
4 挂载选项 defaults,acl,gid,mode
5 (转储频率)备份的频率0不备份,1每天备份一次,2每隔一天备份一次
6 文件自检次序0-9 0 从不自检,开机自检1-9按次序
对于挂载的设备名从上面的例子可以看出有三种方法:
设备名
卷标
UUID
能查看卷标的命令有 :e2lable /dev/device
blkid
tune2fs –l
dumpe2fs /dev/device
交换分区
mkswap /dev/sda9
交换分区不用挂载就能使用 swapon /dev/sda9 关闭 swapoff –s /dev/sda3
swapon –s 查看虚拟内存
独立冗余磁盘阵列
RAID技术可以通过硬件和软件两种方式实现
硬件:RAID卡
软件:在内核当中附加类似md的软设备驱动来实现软raid
linux下软raid的级别(表明磁盘的不同连接方式)
0:高读写性,不提过冗余,出故障的概率大大增加(用做swap分区,做临时分区)
1:写入速度慢,读取速度快;高冗余性。
4:串联3块硬盘,一块盘转用奇偶效验码存储。将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
5:RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。
6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。
10:
raid 管理软件mdadm.i386 mdadm 模式化工具
装配模式: -A
创建模式
-C /dev/mdo
-a yes –l 指定级别 –n 个数
-x 指定空闲盘
管理模式 :只对有冗余的磁盘有用
-f 模拟磁盘故障
-r 移除一块磁盘
-S 停止raid
-AS 启动raid
监控模式:
cat /proc/mdstat监控工作状况
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
磁盘分区、卷组、逻辑卷和文件系统之间的逻辑关系的示意图
最下面的是物理卷(pv physical volume )
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(vg Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘, 其由物理卷组成。 可以在卷组上创建一个或多个 “LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷:(lv logical volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
创建和管理LVM
1. 创建LVM分区时指定其分区类型为8e
2.创建物理卷 pvcreate
# pvcreate /dev//sdb{5,6}
Physical volume "/dev//sdb5" successfully created
Physical volume "/dev//sdb6" successfully created
3. 创建卷组 vgcreate
# vgcreate myvg /dev/sdb5 /dev/sdb6
/dev/cdrom: open failed: Read-only file system
/dev/cdrom: open failed: Read-only file system
Attempt to close device '/dev/cdrom' which is not open.
Volume group "myvg" successfully created
激活卷组:vgchange –a y myvg
4. 创建逻辑卷 lvcreate
lvcreate –L 指定大小
-l指定盘区块
-n 命名
# lvcreate -L 1G -n mydata myvg
Logical volume "mydata" created
# mke2fs /dev/myvg/mydata
# mkdir /lvm
#mount /dev/myvg/mydata /lvm/
扩展步骤
umount /lvm
e2fsck -f /dev/myvg/mydata
lvextend –L [+]1G /dev/myvg/mydate 有+号标示增加1G ,没有+号标示增加到1G 改物理边界
resize2fs –p /dev/myvg/mydate 改逻辑边界
缩减步骤
umount /lvm
e2fsck –f /dev/myvg/mydata
resize2fs /dev/myvg/mydata 2G
lvreduce –L 2G /dev/myvg/mydata
从新挂载,查询里面的数据是否正常
缩减带有数据的卷组
先要把这个卷组的数据移动到别的pv上
pvmove /dev/sda6
vgreduce myvg /dev/sda6
联系客服