磁盘管理

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

相关推荐

  • 权限管理

    linux文件权限:     在linux系统中,每个文件或目录都包含有相应的权限,这些权限决定了哪些用户或组能够对此文件做哪些操作,如读取、删除、写入等操作 文件权限分为三类:r,w,x     应用于文件:      &nbs…

    Linux干货 2016-08-07
  • 细说CP使用

    cp详细用法和常用选项

    Linux干货 2017-11-26
  • 关于取路径名与基名的探讨和扩展-20160806

                          关于取路径名与基名的探讨和扩展     这两天学习grep  ,   egrep  ,  sed  &nb…

    Linux干货 2016-08-07
  • 用户及权限管理 (Blog 1)

    用户、权限相关概念及用户管理类命令

    2017-11-06
  • 万能的AWK

    awk:文本三剑客之一 #报告生成器,主要用来实现格式化文本输出,它能够实现在处理文本文件时对文档中的某字段有条件显示并以非常美观的文本; 它是编程语言的解释器;它也是一种完整的编程语言,它支持条件判断、循环、变量、数组、函数等等各种各样的编程语言所能实现的功能。 用法:awk [options] ‘program’ FILE &#8…

    2017-04-22
  • 第二周 博客作业

    1、linux上的文件管理类命令有哪些,其常用的使用方法及其相关示例。 文件管理命令:rm  mv cp       cp 复制命令       cp   源文件   目标文件           工作机制:如…

    Linux干货 2016-11-03