磁盘管理

CHS cylinder-head-sector

cylinder柱面=track*head=512*63*256=8M 


磁盘分区

为什么是分区?

优化I/O 性能

实现磁盘空间配额限制

提高修复速度

隔离系统和程序

安装多个OS

采用不同文件系统

 

MBR:使用32位表示扇区数量,按每扇区512字节计算,每个分区最大不能超过2TB

blob.png

 

(Globals Unique Identifiers Partition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。GPT支持128个分区,使用128 位UUID 区 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC 校验位

EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域

 

管理分区

列出块设备  lsblk

创建分区使用:

   fdisk创建MBR 分区,也支持GPT ,对于一块硬盘,最多只能管理15分区

   gdisk创建GPT 分区

   GNU parted  高级分区操作(创建、复制、调整大小等等)

partprobe-重新设置内存中的内核分区表版本

 

centos7

fdisk -l -u=cylinders /dev/sda   //以柱面显示

fdisk -l  /dev/sda                        //以扇区显示

 

echo "- – -" > /sys/class/scsi_host/host2/scan   //不重启,识别到新加硬盘

blob.png

 

hexdump -C -n 512 /dev/sda      //查看头文件

blob.png(1)

 

dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512    //备份头文件

blob.png

 

hexdump -v -C /testdir/mbrbak     //显示同(1)说明备份成功

 

dd if=/testdir/mbrbak of=/dev/sdb    //恢复分区表

fdisk -l /dev/sdb   //分区信息同/dev/sda

 

dd if=/dev/zero of=/dev/sdb bs=1 count=446    //破坏/dev/sdd前446个字节

hexdump -C -n 512 /dev/sdb     //检查发现头文件的前部分被0填充

 

dd if=/dev/zero of=/dev/sdb bs=1 count=2 skip=510 seek=510   //清掉最后的两字节55A,标志位

fdisk -l /dev/sdb   无分区信息

 

fdisk /dev/sdb

 子命令:

    p  分区列表

    t   更改分区类型

    n  创建新分区

    d  删除分区

    w 保存并退出

    q  不保存并推出

 

查看内核是否已经识别新的分区

blob.png

 

通知内核重新读取硬盘分区表

   新增分区用

   partx -a -n M:N /dev/DEVICE

   kpartx -a /dev/DEVICE -f: force

   删除分区用

   partx -d -n M:N /dev/DEVICE

   centos 6: –nr N-M     //specify the range of partitions

centos  5,7使用partprobe

partprobe [/dev/DEVICE]

 

parted 的操作都是实时生效的

用法:parted [ 选项]… [设备 [令 命令 [ 参数]…]…]

   parted /dev/sdb mklabel gpt|msdos

   parted /dev/sdb print

   parted /dev/sdb mkpart primary 1 200  (默认M)

   parted /dev/sdb rm 1

   parted -l

也可parted device 进入交互式界面操作

 

 

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法操作系统负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统。

 

从系统角度来看,文件系统是对文件存储设备的空间进行组 织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修 改、转储文件,控制文件的存取,安全控制,日志,压缩, 加密等。

 

 

 

文件系统类型

Linux 文件系统: ext2(Extended file system), ext3/4, xfs(SGI公司), btrfs(Oracle), reiserfs, jfs(AIX ), swap

光盘:iso9660

Windows :fat32, ntfs

Unix: FFS (fast ), UFS (unix ), JFS2

网络文件系统:NFS, CIFS

集群文件系统:GFS2, OCFS2 (oracle)

分布式文件系统:ceph, moosefs, mogilefs, glusterfs, Lustre

RAW: 未经处理或者未经格式化产生的文件系统

 

根据其是否支持"journal" 功能:

   日志型文件系统: ext3, ext4, xfs, …

   非日志型文件系统: ext2, vfat

文件系统的组成部分:

   内核中的模块:ext4, xfs, vfat

   用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

Linux 的虚拟文件系统:VFS

查前支持的文件系统:cat /proc/filesystems

 

 

 

lsmod  //查看加载的模块

lsmod|grep xfs

blob.png

 

 

VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层

在Linux下,通过VFS,一个抽象的通用访问接口屏蔽了底层文件系统和物理介质的差异性

blob.png

 

blob.png

 

 

Linux硬盘组织方式为:引导区、超级块(superblock),索引结点(inode),数据块(datablock),目录块(diredtory block).其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等;超级块后面的数据结构是索引结点,它包含了针对某一个具体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置.但是索引结点中不包括文件的名字,文件名是放在目录块里的.目录块里包含有文件的名字以及此文件的索引结点编号.

 

blob.png

 

 

创建文件系统

mkfs.FS_TYPE   /dev/DEVICE

   ext4|xfs|btrfs|vfat

mkfs -t FS_TYPE  /dev/DEVICE

   -L 'LABEL' 设定卷标

 

mke2fs :ext 系列文件系统专用管理工具

   -t {ext2|ext3|ext4}

   -b {1024|2048|4096}

   -L 'LABEL'

   -j: 相当于 -t ext3   //journal 日志

   blob.png

    blob.png

mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

   -i #:  为数据空间中每多少个字节创建一个inode ;此大 小不应该小于block 的大小

   -N # :为数据空间创建个多少个 个inode

   -I  一个inode 记录大小128—4096

   -m #:  默认5%, 为管理人员预留空间占总空间的百分比

   blob.png

    mkfs.ext4 -m 1 /dev/sdb1     //调为1%

   -O FEATURE[,…] :启用指定特性     

   -O ^FEATURE

   -f:强制转为xfs文件系统

   blob.png

 

文件系统标签

blkid :块设备属性信息查看

blob.png

blkid [OPTION]… [DEVICE]

-U UUID:  根据指定的UUID 来查找对应的设备

-L LABEL :根据指定的LABEL 来查找对应的设备

根据/etc/fstab中/boot目录的UUID查找对应的设备

blkid -U `sed -nr "s/UUID=(.*) \/boot.*/\1/p"  /etc/fstab`

blkid -U `cat /etc/fstab |grep boot|cut -d' ' -f1|cut -c6-`

 

e2label :管理ext 系列文件系统的LABEL

e2label DEVICE [LABEL]

blob.png

 

findfs :查找分区

findfs [options] LABEL=<label>

findfs [options] UUID=<uuid>

blob.png

 

tune2fs :重新设定ext 系列文件系统可调整参数的值

   -l :查看指定文件系统超级块信息;super block

   blob.png

   -L 'LABEL' :修改卷标

   -m # :修预留给管理员的空间百分比

   -j:  将ext2 升级为ext3

   -O:  文件系统属性启用或禁用, 

tune2fs -O ^has_journal /dev/sdb1  //取消日志

tune2fs -l /dev/sdb1 看不到has_journal ,blkid 看到/dev/sdb1 无TYPE="ext3")

   blob.png

   -o:  调整文件系统的默认挂载选项,–o ^acl

   -U UUID:  修改UUID号

 xfs系统用tune2fs -l查看无效

 vfat系统不区分大小写,权限755,不受umask管制,不安全

 

dumpe2fs

     -h :查看超级块信息(分组信息),分区用分组管理

dumpe2fs  /dev/sdb1

blob.png

 

 

 

文件系统检测和修复:

常发生于死机或者非正常关机之后

挂载为文件系统标记为“dirty” ”

fsck: File System Check

   fsck.FS_TYPE

   fsck -t FS_TYPE

       -a:  自动修复错误

       -r:  交互式修复错误

注意: FS_TYPE 一定要与分区上已经文件类型相同

e2fsck :ext 系列文件专用的检测修复工具

   -y:自动回答为yes

   -f :强制修复

 

 

 

mke2fs -t ext4 /dev/sdb3

dd if=/dev/zero of=/dev/sdb3 bs=1k count=10   //破坏超级块

tune2fs -l /dev/sdb3  显示bad magic number

e2fsck   /dev/sdb3    //修复得在非挂载情况下进行,否则容易造成破坏

 

fuser -km /mnt/sdb2   //kill,换成根自杀

 

 

挂载:将额外文件系统与根文件系统某现存的目录建立关联,进而使得此目录做为其它文件访问入口的行为

用mount命令挂载文件系统  mount DEVICE MOUNT_POINT

mount :通过查看/etc/mtab

mount [-fnrsvw] [-t vfstype] [-o options] device dir

    device :指明要挂载的设备;

    (1)设备文件

    (2)卷标:-L 'LABEL'

    (3)UUID, -U 'UUID'

    (4)伪文件系统名称:proc, sysfs, devtmpfs, configfs

    dir :挂载点

    事先存在;建议使用空目录

    进程正在使用中的设备无法被卸载

 

常用选项:

-t vsftype :指定要挂载的设备上的文件系统类型

-r: readonly ,只读挂载

-w: read and write,  读写挂载

-n:  不更新/etc/mtab ,相当于#mount

-a:自动挂载所有支持自动挂载的设备( 定义在了/etc/fstab 文件中,且挂载选项中有auto功能)

-B, –bind: 绑定目录到另一个目录上

mount -B /boot/ /mnt/boot   //两个目录都看到一致的内容,因为是同样的文件

blob.png

 

 -o options :( 挂载文件系统的选项) ,多个选项使用逗号分隔

   async :异步模式

   sync :同步模式, 内存更改时,同时写磁盘

mount -o sync /dev/sdb1 /mnt/sdb1

blob.png

   atime/noatime :包含目录和文件

   diratime/nodiratime :目录的访问时间戳

   auto/noauto :是否支持自动挂载, 是否支持-a 选项

   exec/noexec :是否支持将文件系统上运行应用程序

   dev/nodev :是否支持在此文件系统上使用设备文件

   suid/nosuid :是否支持suid 和sgid 权限

   remount :重新挂载

   mount -o,remount,noexec /mnt/sdb1

   blob.png

   ro :只读

   rw:读写

   user/nouser :是否允许普通用户挂载此设备,默认管理员才能挂载

   acl :启用此文件系统上的acl 功能

Defaults :相当于rw, suid, dev, exec, auto, nouser, async

 

mknod cdrom b 11 0   ////生成cdrom这个设备

blob.png

mount  ./cdrom /mnt/boot

cd  /mnt/boot 可以访问光盘内容

 

 

 

centos7

yum  install autofs

systemctl start autofs

根目录下出现misc目录

cd /misc

cd cd     //挂载光盘

 

 

 

 

 

原创文章,作者:victorycommander,如若转载,请注明出处:http://www.178linux.com/41587

(0)
victorycommandervictorycommander
上一篇 2016-08-28
下一篇 2016-08-29

相关推荐

  • 基于Keepalived实现LVS双主高可用集群

    前言 前面说过基于heartbeat的LVS高可用方案,今天带来另一种解决方案:基于Keepalived实现LVS双主高可用集群。什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生。本文将详细讲述Keepalived工作原理及高可用解决方案的实现。 相关介绍 K…

    Linux干货 2015-06-16
  • 第五周

    显示/boot/grub/grub.conf中以至少一个空白字符开头的行 egrep "^[[:space:]]+" /boot/grub/grub.conf 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行 egrep "^#[[:…

    Linux干货 2016-09-19
  • 程序包管理之rpm

    程序包管理器不同公司的发行版:                         debian:dpt管理器 &…

    Linux干货 2016-08-22
  • 一次css页面加载异常的折腾

    1       原始需求 近期在搭建平台,因多域名会分割流量,所以希望将类似 ansible.178linux.com  salt.178linux.com qa.178linux.com 这些平台整合为一个平台,所示如下 ansible.178linux.com =è www.178li…

    系统运维 2015-06-10
  • LAMP部署之NFS共享网络存储

    LAMP部署之NFS共享网络存储 架构图: 说明:     当一个网站的访问量上来之后,一台WebServer服务器无法应付那么高的并发,需要横向扩展Web服务器数量,     当我们访问网页,向Web服务器请求资源时,资源主要分为静态资源和动态资源(程序处理),  &…

    Linux干货 2016-06-20
  • Mysql 报错解决–PID file could not be found!

    今天想把之前在cetnos6上编译安装的mariadb改下PATH环境变量,操作几次之后,关闭或重启mysql就失败了,提示如下: [root@web1 ~]# service mysqld stop MySQL server PID file could not&nb…

    系统运维 2016-09-19