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

相关推荐

  • FHS文件结构

    我们在前面学习的过程中有了解到,linux的发现版有很多种类型,那么如果每个版本都有着自己的想法去配置文件应该放置的目录,那么将造成管理上的困扰,于是为了解决这个问题,就有了FHS标准。 1.1 FHS 结构 1.1.1 软件的概念 之前,我们提到过,一个完整的计算机系统应该有两部分组成,即:计算机系统=软件+硬件。没有软件的硬件,计算机只不过是一堆只会发热…

    Linux干货 2016-10-27
  • MySQL常见备份与恢复方案

    MySQL常见备份方案有以下三种:        mysqldump + binlog        lvm + binlog          xtrabac…

    Linux干货 2015-10-01
  • RPM总结(一)

    软件包基础软件包运行环境硬件、内核、应用程序的关系包管理器程序包管理器Linux不同系统上的包管理器RPM的优点rpm包命名方式一般源代码的命名rpm包的命名rpm包的分类与拆包包管理工具RPM包管理器:程序包管理器:获取程序包的途径:rpm包管理CentOS系统上使用rpm命令管理程序包:安装升级:降级降级实例more 软件包基础 包管理过程中,最常用的操…

    Linux干货 2016-08-24
  • 可伸缩的逻辑卷

    什么是逻辑卷? 逻辑卷简称LVM, LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.   为什么要使用逻辑卷? 逻辑卷相比于一般的磁盘分区, 具有更高的灵活性。可随时伸缩空间的大小.   构建逻辑分区图:   逻辑卷概念: PV(物理卷): 是在…

    Linux干货 2016-09-01
  • CentOS多网卡单个ip和单个网卡多个ip的设置

    一、单个网卡设置一个IP地址     1.初始状态已添加一个网卡eth0,并设置的均为自动获取IP地址,如下图所示:网卡为eth0,ip地址为10.1.249.36;为了后续实验的顺利进行,我们把NetworkManager服务关闭     chkconfig NetworkMa…

    Linux干货 2016-09-06
  • 马哥网络21-第5周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost proc]# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf root (hd0,0) kernel /vmlinuz-2…

    Linux干货 2016-08-08

评论列表(1条)

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

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