class14磁盘管理(一)

一、硬盘基础知识及分区类型

1、磁盘结构

设备文件

I/O Ports: I/O 设备地址
一切皆文件:   open(), read(), write(), close()
设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘
设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
设备号码:
主设备号:major number, 标识设备类型
次设备号:minor number, 标识同一类型下的不同设备

硬盘接口类型

并行:
    IDE :133MB/s
    SCSI :640MB/s
 串口:
    SATA :6Gbps
    SAS :6Gbps
    USB :480MB/s
 rpm: rotations
     per minute

设备文件

磁盘设备的设备文件命名:/dev/DEV_FILE     IDE: /dev/hd    IDE: 
    第一个IDE口:主、从        /dev/hda, /dev/hdb
    第二个IDE口:主、从        /dev/hdc, /dev/hdd
        
SCSI, SATA, SAS, USB: /dev/sd
   不同设备:a-z       /dev/sda, /dev/sdb, ...
   同一设备上的不同分区:1,2, .../dev/sda1, /dev/sda5

硬盘存储术语

head:磁头
track:磁道
cylinder: 柱面
secotr:  扇区,512bytes
     
CHS 寻址   512*63*1024*256LBA寻址

2、磁盘分区

磁盘分区的优势:
              
    • 优化I/O 性能
    • 实现磁盘空间配额限制
    • 提高修复速度
    • 隔离系统和程序
    • 安装多个 个OS
    • 采用不同文件系统

分区

两种分区方式:MBR ,GPT
MBR: Master Boot Record ,1982年,使用32位表示扇区数, 分区不超过2T
          
如何分区:按柱面0磁道0扇区:512bytes            446bytes: boot loader            64bytes :分区表            16bytes:  标识一个分区            2bytes: 55AA  
            
4 个主分区;3 主分区+1 扩展(N 个逻辑分区)

GPT分区

GPT:GUID patition table  支持128个分区使用64位,支持8Z(512Byte/block)64Z (4096Byte/block)
          
使用128位UUID区表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC 校验位
          
UEFI ( 统一扩展固件接口) 硬件 支持GPT,使操作系统启动

GPT分区结构

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

二、管理分区

列出块设备
blkid

分区工具fdisk和gdisk

• fdisk  创建MBR 分区,也支持GPT,对于一块硬盘,最多只能管理15分区
• gdisk  创建GPT分区
         
fdisk /dev/sdb
gfisk /dev/sdb  类fdisk  的GPT 分区工具
# fdisk -l [-u] [device...]      查看磁盘及分区信息
子命令:
    p  分区列表
    t  更改分区类型    n  创建新分区    d  删除分区
    w  保存并退出
    q  不保存并退出

同步分区表

查看内核是否已经识别新的分区:
# cat /proc/partitions
通知内核重新读取硬盘分区表
centos 6
    新增分区用
    partx -a -n M:N /dev/DEVICE
    kpartx -a /dev/DEVICE -f: force
    删除分区用
    partx -d -n M:N /dev/DEVICE
    centos6: –nr N-M
    CentOS 5,7: 使用partprobe
   partprobe [/dev/DEVICE]

parted命令

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

三、文件系统及管理

文件系统类型

Linux 文件系统: ext2, ext3, ext4, xfs (SGI ), btrfs(Oracle ), reiserfs, jfs (AIX ), swap光盘: :iso9660
Windows :fat32, ntfsUnix: 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

创建文件系统

mkfs 命令:
(1) # mkfs.FS_TYPE /dev/DEVICE
    ext4
    xfs
    
    centos6   
    1、添加xfs需要的用户组    #useradd mockbuild
    2、安装xfs相关包,挂载xfs内核    # yum install xfsprogs kmod-xfs xfsdump xfsprogs-devel
    # modprobe xfs
    # mkfs.xfs -f FS_type
    centos7    # mkfs.xfs -f FS_type
    
    btrfs
    vfat
(2) # mkfs -t FS_TYPE /dev/DEVICE  格式化分区
     -L 'LABEL':  设定卷标
mke2fs :ext 系列文件系统专用管理工具
-t {ext2|ext3|ext4}    -b {1024|2048|4096}    -L 'LABEL'    -j: 于 相当于 -t ext3    mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
    -i #:  为数据空间中每多少个字节创建一个inode ;此大小不应该小于block 的大小    -N # :为数据空间创建个多少个inode    -I  一个inode 记录大小128---4096    -m #:  默认5%,为管理人员预留空间占总空间的百分比    -O FEATURE[,...] :启用指定特性    -O ^FEATURE :关闭指定特性

文件系统标签

指向设备的另一种方法
与设备无关
blkid :块设备属性信息查看
blkid [OPTION]... [DEVICE]
    -U UUID:  根据指定的UUID 来查找对应的设备
    -L LABEL:根据指定的LABEL 来查找对应的设备
e2label :管理ext 系列文件系统的LABEL
# e2label DEVICE  查看分区卷标# e2label DEVICE [LABEL]
findfs :查找分区
findfs [options] LABEL=<label>
    findfs [options] UUID=<uuid>
tune2fs (块大小不可修改)
tune2fs :重新设定ext 系列文件系统可调整参数的值
    -l :查看指定文件系统超级块信息;super block    -L 'LABEL' :修改卷标    -m # :修预留给管理员的空间百分比    -j:  将ext2 升级为ext3    -O:  文件系统属性启用或禁用, –O ^has_journal    -o:  调整文件系统的默认挂载选项,–o ^acl    -U UUID:  修改UUID号 
    
    生成UUID号
    [root@6 etc]# uuidgen
    c9fcf00a-6404-4a1c-97dd-8341e137ae99
            
dumpe2fs:
    -h:查看超级块信息(分组信息),分区用分组管理

文件系统检测和修复

常发生于死机或者非正常关机之后
挂载为文件系统标记为“dirty” ”
fsck: File System Check
fsck.FS_TYPE
    fsck -t FS_TYPE
    -a:  自动修复错误    -r:  交互式修复错误注意: FS_TYPE 一定要与分区上已经文件类型相同;
e2fsck :ext 系列文件专用的检测修复工具
-y :自动回答为yes           -f :强制修复

四、挂载mount

挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
            
卸载:为解除此关联关系的过程
             
把设备关联挂载点:mount Point
       mount
卸载时:可使用设备,也可以使用挂载点
       umount
挂载点下原有文件在挂载完成后会被临时隐藏
               
挂载点目录一般为空

mount 命令挂载文件系统

挂载方法:mount DEVICE MOUNT_POINT
            mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
       
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device :指明要挂载的设备;
    (1)  设备文件:例如/dev/sda5
    (2)  卷标:-L 'LABEL',  例如 -L 'MYDATA'
    (3) UUID, -U 'UUID'如 :例如 -U '0c50523c-43f1-    45e7-85c0-a126711d406e'
    (4)  伪文件系统名称:proc, sysfs, devtmpfs, configfs
    dir :挂载点
        事先存在;建议使用空目录
        进程正在使用中的设备无法被卸载

mount 常用命令选项

-t vsftype:指定要挂载的设备上的文件系统类型-r: readonly ,只读挂载-w: read and write,  读写挂载-n:  不更新/etc/mtab,相当于#mount-a :自动挂载所有支持自动挂载的设备( 定义在了/etc/fstab文件中,且挂载选项中有auto 功能)-L 'LABEL':以卷标指定挂载设备[root@6 testdir]# mount -L  MYDATE /media/sdd5
       
-U 'UUID':  以UUID 指定要挂载的设备-B, --bind:绑定目录到另一个目录上    
            
 [root@6 sdd2]# mount -B /media/CentOS_6.8_Final /media/sdd2
            
查看内核追踪到的已挂载的所有设备:
 # cat /proc/mounts
 # mount
 # cat /etc/mtab
 
 -o: 挂载本地回环设备   #mount -o loop /PATH/TO/SOME_FILE MOUNT_POINT

mount 挂载选项

-o options:(挂载文件系统的选项) ,多个选项使用逗号分隔
async:异步模式
    sync :同步模式, 内存更改时,同时写磁盘
    atime/noatime:包含目录和文件
    diratime/nodiratime:目录的访问时间戳    auto/noauto:是否支持自动挂载, 是否支持-a 选项
    exec/noexec:是否支持将文件系统上运行应用程序
    dev/nodev:是否支持在此文件系统上使用设备文件
       
    mknod sss b 8 1    
    建立设备文件
    
    suid/nosuid:是否支持suid 和sgid权限
    remount :重新挂载
    ro:只读
    rw:读写
    user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载
    
    [root@6 media]# mount -o nosuid /dev/sdd1 /media/sdd1
         
    acl:启用此文件系统上的acl 功能
    noacl 
Defaults :相当于rw, nosuid, dev, exec, auto, nouser, async

卸载命令

查看挂载情况:
#findmnt MOUNT_POINT
查看正在访问指定文件系统的进程:
#lsof MOUNT_POINT    #fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程:
# fuser -km MOUNT_POINT
    卸载:    # umount DEVICE
    # umount MOUNT_POINT

积累应用

1、创建mbr,gpt磁盘分区表
mbr分区 
   [root@6 a]# fdisk /dev/sdd
   Command (m for help): n
   Partition number (1-4): 1
   First cylinder (1-2610, default 1): 1
   Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G
             gpt分区
    [root@6 a]# gdisk /dev/sdc
    Command (? for help): n
    Partition number (1-128, default 1): 1
    First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
    Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +5G
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 
    Changed type of partition to 'Linux filesystem'
2、创建xfs、ext4、ext3、vfat分区
[root@6 a]# mkfs.xfs -f /dev/sdd1
    [root@6 a]# mkfs.ext4  /dev/sdd2
    [root@6 a]# mkfs.ext3  /dev/sdc1
    [root@6 a]# mkfs.vfat  /dev/sdc2
    [root@6 a]# blkid
    /dev/sda1: UUID="598997b7-f4a0-4296-9740-f1221ecf0c6b" TYPE="ext4" 
    /dev/sda2: UUID="31bb0614-7b9f-4856-9518-b5cbc03b34ce" TYPE="ext4" 
    /dev/sda3: UUID="df6f5cfe-b43c-4e5d-9811-7af3f33ede54" TYPE="ext4" 
    /dev/sda5: UUID="b92fd434-da1a-4a6e-bea0-87c6d628898a" TYPE="swap" 
    /dev/sdd1: UUID="446cc786-d9d6-414a-951f-1024f2ea532d" TYPE="xfs" 
    /dev/sdd2: UUID="6c80a99d-b436-4411-821e-bb3903ffc67a" TYPE="ext4" 
    /dev/sdc1: UUID="8ad8e9c2-9a2f-4f13-9452-3c8c431fa598" SEC_TYPE="ext2" TYPE="ext3" 
    /dev/sdc2: UUID="CE09-E896" TYPE="vfat"
3、挂载分区
[root@6 media]# mount /dev/sdd1 /media/sdd1[root@6 media]# mount /dev/sdd2 /media/sdd2[root@6 media]# mount -r /dev/sdc1 /media/sdc1[root@6 media]# mount -w /dev/sdc2 /media/sdc2[root@6 media]# dfFilesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       50264772 4596120  43108652  10% /
tmpfs             502068      76    501992   1% /dev/shm
/dev/sda1         194241   34211    149790  19% /boot
/dev/sda3       20027260  160072  18843188   1% /testdir
/dev/sr0         3824484 3824484         0 100% /media/CentOS_6.8_Final
/dev/sdd1        5242980   32928   5210052   1% /media/sdd1
/dev/sdd2        5039624   10264   4766700   1% /media/sdd2
/dev/sdc1        5160576  141436   4756996   3% /media/sdc1
/dev/sdc2        5232640       4   5232636   1% /media/sdc2
4、分区(mbr,gpt)区别和结构
MBR(Master Boot Record)主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备
MBR支持32位和64位系统
MBR支持分区数量有限
MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间(有第三方解决方法)
                  
GPT(GUID Partition Table)全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点
支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted
向后兼容MBR
必须在支持uEFI的硬件上才能使用(Intel提出,用于取代BIOS)
必须使用64位系统

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

(0)
lvasulvasu
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • Linux程序包管理rpm、yum、源码编译

    概述:     众所周知,Linux操作系统本身,必须要借助额外的一些软件,才能完成某些应用的,操作系统如果没有应用程序的填充,就无法创造出生产力,这样即使再完美的操作系统,也毫无用处。那么本章就简要介绍一下Linux系统上对程序包的管理,分为以下三个部分:     1、程序包的…

    Linux干货 2016-08-24
  • 软件包管理工具—rpm命令总结

    描述:    RPM是RedHatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用…

    Linux干货 2016-08-29
  • 文本编辑工具vim

                             vim +#: 打开文件直接处在#行 +/PATTERN:打开文件直接处在第一次匹配到行 vim + file :打开文件直接处在最后行 vim –b file :以二进制打开文件…

    Linux干货 2016-08-12
  • GRUB

    GRUB(Boot Loader):  grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2 grub legacy: stage1: mbr stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统; s…

    Linux干货 2016-04-12
  • 【典韦文章】zabbix实现微信报警

    作者 典韦,追马代发 一、注册微信公众号 首先申请微信公众平台https://mp.weixin.qq.com/一个人最多申请5个公众号,所以还是可以的 申请完之后就可以根据腾讯的提示使用微信公众号了,然后用你自己的微信扫描关注微信号。 就可以看到用户数了,接下来的就要使用的用户的微信ID号了。点击用户查看用户的微信ID号。在浏览器查看用户的微信ID号。就是…

    Linux干货 2015-08-24
  • N25_第五周

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

    Linux干货 2017-01-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-29 10:16

    文章对各命令的作用,用法和常用选项总结的很完整,建议能多一些操作,尝试着灵活运用这些工具来实现,分区的创建与格式化并挂载使用。多动手才能明白自己的不足哦。