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技术可以通过硬件和软件两种方式实现 硬件: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 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 |
|
来自: raymoon_sure > 《linux》