码迷,mamicode.com
首页 > 其他好文 > 详细

磁盘管理

时间:2015-08-30 23:28:32      阅读:388      评论:0      收藏:1      [点我收藏+]

标签:number   程序   接口   通信   命名   

磁盘管理

    I/O  硬盘和网络设备

    

内核控制硬件

驱动程序驱动硬件

驱动程序写进内核


设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信

    

    设备号码:

        主设备号:major number 标识设备类型

        次设备号:minor number,表示同一类型的不同设备

        

    硬盘接口类型:

        并行:

            IDE:133MB/S 

            SCSI:630MB/S 

        串口:

            SATA:6Gbps

            SAS:6Gbps

            USB:480MB/S

            

        /dev/DEV_FILE

            磁盘设备的设备文件命名:

            IDE:/dev/hd

            SCSI,SATA,SAS,USB:/dev/sd

                不同设备:a-z

                    /dev/sda,/dev/sdb.....

                同一设备上的不同分区:1,2.....

                    /dev/sda1,/dev/sda2

                    

        机械式硬盘:

            track:磁道

            cylinger:柱面

            sector:扇区

                512bytes

                

            如何分区:

                按柱面划分

                

            0磁道0扇区:512bytes

                MBR:Master Boot Record主引导记录

                    446bytes:boot loader

                    64bytes:分区表

                        16bytes:标识一个分区

                    2bytes:

                

                4个主分区:

                    3主分区+1扩展(N个逻辑分区)

            

            

            问题:UEFI、GPT

            

            

分区管理工具:fdisk,parted,sfdisk


fdisk:

对于一块硬盘来讲,最多fdisk只能管理15个分区

    fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device

    fdisk -l [-u] [device...]

    fdisk -s partition...


    fdisk device

    子命令:管理功能

        p:print,显示已有分区

        n:new,创建                

        d:delete,删除

        w:write,写入磁盘并退出

        q:quit放弃更新并退出

        m:获取帮助

        l:列表所分区id

        t:调整分区id

        

        

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

    cat /proc/partations

    

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

    partx -a /dev/DEVICE

    

    kpartx -a /dev/DEVICE 

    

    centos5:partprobe /dev/DEVICE




Linux文件系统管理


    Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap

        swap:交换分区,

        光盘:iso9660

        

    windows:fat32,ntfs


    unix:ffs,ufs,jfs2


    网络文件系统:NFS,CIFS

    集群文件系统:GFS2,OCFS2

    分布式文件系统:ceph

        moosefs,mogiilefs,GlusterFS,Lustre  

        

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

        日志性文件系统:ext3,ext4

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


    文件系统的组成部分:

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

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

    

    


Linux的虚拟文件系统:VFS



创建文件系统:

mkfs

    mkfs.FILE_TYPE  /dev/DEVICE

    mkfs -t FILE_TYPE /dev/DEVICE

        -L ‘LABEL‘:设定卷标

        -f:强制格式化

               

            btrfs(centos 7自带 包含LVM功能是很强大的文件的系统)

            cat /proc/filesystems

            lsmod

            mkfs.ext4 /dev/sda5

            blkid  /dev/sda5

            mkfs.ext4 -L "MYDATA" /dev/sda5

            mkfs.btrfs -f /dev/sda5



 

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

   -t(ext2|ext3|ext4)

   -b(1024|2048|4096):默认4096,4k

   -L ‘LABEL‘

   -j:相当于 -t ext3

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

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

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

    -m #:为管理人员预留的空间占据的百分比

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

       -O ^FEATURE :关闭指定特性

           

mkswap:创建交换分区

        mkswap [options] DEVICE

            前提:调整分区的系统类型 82                

               

                  

blkid:块设备属性信息查看

        blkid -L label | -U uuid [DEVICE]

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

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

            

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

        e2label DEVICE [LABEL]


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

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

        -L ‘LABEL‘:修改就卷标

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

        -j:将ext2升级ext3

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

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

        -U UUID:修改UUID号

        

dumpe2fs:

        -h:查看超级块信息

   



文件系统检测:

fsck:File System check

        fsck.FILE_TYPE

        fsck -t FILE_TYPE

             -a:自动修复错误

             -r:交互式修复错误

        

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

        

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

        -y:自动回答为yes

        -f:强制修复;

            

            

回顾:

磁盘接口类型、磁盘分区、fdisk、mkfs、mke2fs, tune2fs, blkid, dumpe2fs, e2label


vfs: xfs, ext{2|3|4}, btrfs


文件系统管理:

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


解除此关联关系的过程称之为卸载;


把设备关联挂载点:Mount Point

mount


卸载时:可使用设备,也可以使用挂载点

umount


注意:挂载点下原有文件在挂载完成后会被临时隐藏;


挂载方法: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:挂载点

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

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


常用命令选项:

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

-r: readonly,只读挂载;

-w: read and write, 读写挂载;

-n: 不更新/etc/mtab; 

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

-L ‘LABEL‘: 以卷标指定挂载设备;

-U ‘UUID‘: 以UUID指定要挂载的设备;

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


注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts


-o options:(挂载文件系统的选项)

async:异步模式;

sync:同步模式;

atime/noatime:包含目录和文件;

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

auto/noauto:是否支持自动挂载

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

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

suid/nosuid:

remount:重新挂载

ro:

rw:

user/nouser:是否允许普通用户挂载此设备

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


注意:上述选项可多个同时使用,彼此使用逗号分隔;

  默认挂载选项:defaults

   rw, suid, dev, exec, auto, nouser, and async


卸载命令:

# umount DEVICE

# umount MOUNT_POINT


查看正在访问指定文件系统的进程:

# fuser -v MOUNT_POINT


终止所有在正访问指定的文件系统的进程:

# fuser -km MOUNT_POINT


挂载交换分区:

启用:swapon

swapon [OPTION]... [DEVICE]

-a:激活所有的交换分区;

-p PRIORITY:指定优先级;

禁用:swapoff [OPTION]... [DEVICE]


内存空间使用状态:

free [OPTION]

-m: 以MB为单位

-g: 以GB为单位


文件系统空间占用等信息的查看工具:

df: 

-h: human-readable

-i:inodes instead of blocks

-P: 以Posix兼容的格式输出; 


查看某目录总体空间占用状态:

du:

du [OPTION]... DIR

-h: human-readable

-s: summary


命令总结:mount, umount, free, df, du, swapon, swapoff, fuser


文件系统挂载使用:

挂载光盘设备:

    光盘设备文件:

        IDE: /dev/hdc

        SATA: /dev/sr0


        符号链接文件:

            /dev/cdrom

            /dev/cdrw

            /dev/dvd

            /dev/dvdrw


    mount -r /dev/cdrom /media/cdrom

    umount /dev/cdrom

    

    

文件挂载的配置文件:/etc/fstab


每行定义一个要挂载的文件系统;


要挂载的设备或伪文件系统  挂载点  文件系统类型   挂载选项  转储频率   自检次序


要挂载的设备或伪文件系统:

设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs)


挂载选项:

defaults


转储频率:

0:不做备份

1:每天转储

2:每隔一天转储


自检次序:

0:不自检

1:首先自检;一般只有rootfs才用1;

...


文件系统上的其它概念:

Inode: Index Node, 索引节点

地址指针:

直接指针:

间接指针:

三级指针:


inode bitmap:对位标识每个inode空闲与否的状态信息;


链接文件:

硬链接:

不能够对目录进行;

不能跨分区进行;

指向同一个inode的多个不同路径;创建文件的硬链接即为为inode创建新的引用路径,因此会增加其引用计数;


符号链接:

可以对目录进行;

可以跨分区;

指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;


ln [-sv] SRC DEST

-s:symbolic link

-v: verbose


文件管理操作对文件的影响:

文件删除:

文件复制:

文件移动:

            

            

            

            

            

            

            

            

            

            

            

            

            

            

    

    

    

    

    

    

    

    

    

    

    

    


磁盘管理

标签:number   程序   接口   通信   命名   

原文地址:http://love365linux.blog.51cto.com/9236366/1689925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!