磁盘管理1——分区和文件系统的创建

Linux磁盘及文件系统管理

Disk(硬盘)接口类型:

         IDE:并口,133MB/s

         SCSI:并口,640MB/s

         SATA:串口,6Gbps

         SAS:串口,6Gbps

         USB:串口,480MB/s

         并口:同一线缆可以接多块设备:

             IDE:

                  两个,主从

             SCSI:

                     宽带:16-1个

                     窄带:8-1个        

         串口:同一线缆只可以接一个设备:

硬盘:机械硬盘,固态硬盘

         机械硬盘:

             head:磁头

             track:磁道

             cylinder:柱面

             secotr:扇区,512bytes

             平均寻道时间:5400rpm(每分钟5400转),7200,10000,15000rpm

Linux的哲学思想:一切皆文件

         设备类型:

             块设备:block,随机访问,存取单位“块”,磁盘

             字符设备:char,线性访问,存取单位“字符”,键盘

        

         设备文件:FHS

             /dev:设备文件,关联至设备的驱动程序,设备的访问入口

             设备号码:

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

             次设备号:minor number,标识同一类型下的不同设备

        

         mknod命令:创建设备文件

             mknod [OPTION]… NAME TYPE [MAJOR MINOR]

                 -m MODE:创建后的设备文件的访问权限

                 eg:# mknod /dev/test b 100 1

        

         设备文件名:命名规则由ICANN指定

磁盘:

         IDE: /dev/hd[a-z]

           eg:/dev/hda ,/dev/hdb

         SCSI, SATA, SAS, USB: /dev/sd[a-z]  //用户26个后使用aa,ab,ac,…..az

             eg:/dev/sda ,/dev/sdb, …

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

             eg:/dev/sda1 ,/dev/sda5

        

         磁盘分区:

             两种分区方式:MBR ,GPT

             MBR: Master Boot Record ,1982年提出, 使用32位表示扇区数,分区不超过2T

             如何分区:按柱面

             0 磁道0扇区:512bytes

             446bytes: boot loader

             64bytes :分区表

             16bytes:  标识一个分区

             2bytes: 55AA

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

            

             GPT:GUID patition table支持128个分区,使用64位,支持8Z(512Byte/block)64Z(4096Byte/block)

             使用128位UUID表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位

             UEFI ( 统一扩展固件接口)硬件支持GPT

分区创建工具:parted,sfdisk和fdisk

fdisk命令:

1、查看磁盘的分区信息:

fdisk -l [device…] :列出全部[指定]磁盘设备上的分区情况

2、管理分区

fdisk device

fdisk命令提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能,索引的操作均在内存中完成,没有直接同步到磁盘,指定使用w命令保存至磁盘上

     常用命令:

     n:创建一个新的分区

     d:删除一个分区

     t:修改一个分区的分区类型

     l:查看或列出所有分类对应的id表

     w:保存退出

     q:不保存退出

     p:显示当前分区

     m:查看帮助信息

注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别,需要使用命令通知内核重新读此分区

查看:cat /proc/partations

通知内核强制重读磁盘分区表:

     CentOS5,7:partprobe [device]

     CentOS6,7:partx,kpartx

         新增分区:# partx -a [device]

         删除分区:# partx -d -n M[-N] /dev/DEVICE  (M,N为分区的数字编号)


[root@CentOS6 boot]# lsblk         //目前磁盘上只有一块磁盘sda,上面只有一个分区
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom  
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /testdir
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0  3.9G  0 part [SWAP]
└─sda6   8:6    0    1G  0 part /home
[root@CentOS6 boot]# fdisk /dev/sda           //进入到fdisk提供的交互式接口中,管理磁盘
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): n                  //新建一个分区
First cylinder (9592-26109, default 9592):                  //起始柱面为默认柱面
Using default value 9592
Last cylinder, +cylinders or +size{K,M,G} (9592-26109, default 26109): +10G          //直接指明空间为10G
Command (m for help): p            //显示sda磁盘在内存中的已存在分区(注意:此时修改还没有写入磁盘上,如若修改错误,可以直接使用q命令退出)
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f14f
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400        8950    20480000   83  Linux
/dev/sda4            8950       26109   137829376    5  Extended
/dev/sda5            8950        9460     4096000   82  Linux swap / Solaris
/dev/sda6            9460        9591     1055804   83  Linux
/dev/sda7            9592       10897    10490413+  83  Linux                //新建的磁盘,10G
Command (m for help): w                  //保存退出,并写如磁盘
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.            //提示磁盘分区情况和内存不同步,要使用命令手动同步
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@CentOS6 boot]# partx -a /dev/sda                        //手动同步系统磁盘情况
BLKPG: Device or resource busy
error adding partition 1
....
error adding partition 6
[root@CentOS6 boot]# fdisk -l /dev/sda                  //查看sda磁盘的情况
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009f14f
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400        8950    20480000   83  Linux
/dev/sda4            8950       26109   137829376    5  Extended
/dev/sda5            8950        9460     4096000   82  Linux swap / Solaris
/dev/sda6            9460        9591     1055804   83  Linux
/dev/sda7            9592       10897    10490413+  83  Linux

创建文件系统:

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

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

格式化:低级格式化(分区之前进行,划分磁道),高级格式化(分区之后进行,创建文件系统)

VFS:Virtual File System

         Linux 文件系统: ext2, ext3, ext4, xfs (SGI), btrfs(Oracle), reiserfs, jfs(AIX ), swap

         swap:交换分区

         光盘:iso9660

         Windows:fat32, ntfs

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

         网络文件系统:NFS, CIFS

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

         内核级分布式文件系统:ceph

         伪文件系统:proc, ysfs, tmpfs, hugepagefs

         用户空间的分布式文件系统:moosefs, mogilefs, glusterfs

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

         根据其是否支持"journal"(日志)功能:

                 何为日志文件系统:加入了对文件系统更改的日志记录,减少文件被破坏的机率,访问磁盘时系统死机不会丢失文件

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

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

        

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

磁盘和文件系统管理:

文件系统管理工具:

     创建文件系统的工具:mkfs, mke2fs

     检测及修复文件系统的工具:fsck, e2fsck

     查看其属性的工具:dumpe2fs, tune2fs

     调整文件系统特性:tune2fs

内核级文件系统的组成部分:

     文件系统驱动:由内核提供

     文件系统管理工具:由用户空间的应用程序提供

ext系列文件系统的管理工具:

mkfs:

  常见的2中表现方式:

         (1)mkfs.FS_TYPE /dev/DEVICE

         FS_TYPE:

         ext2 ,ext3 ,ext4 ,xfs ,btrfs ,vfat

         (2)mkfs -t FS_TYPE /dev/DEVICE

         选项:

         -b:指定块大小

         -L 'LABEL':设定卷标

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

         mke2fs [OPTIONS] device

         -t {ext2|ext3|ext4}:指明要创建的文件系统类型

            mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4

         -b {1024|2048|4096}:指明文件系统的块大小(默认的最小存储单元)

         -L LABEL:指明卷标

         -j:创建有日志功能的文件系统(ext3)

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

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

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

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

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

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

         -O ^FEATURE:关闭某指定特性

[root@CentOS6 boot]# mke2fs -t ext4 -L mydata -b 1024 /dev/sda7              //指明文件系统类型,指明卷标,指明了块大小
mke2fs 1.41.12 (17-May-2010)
Filesystem label=mydata
OS type: Linux
Block size=1024 (log=0)                  //块大小
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
....

e2label命令:卷标的查看和设定

         查看:# e2label device

         设定:# e2label device LABEL

blkid :块设备属性信息查看

  blkid [OPTION]… [DEVICE]

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

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

[root@CentOS6 boot]# e2label /dev/sda7          //查看卷标
mydata
[root@CentOS6 boot]# e2label /dev/sda7 mytest          //修改卷标为mytest
[root@CentOS6 boot]# blkid /dev/sda7          //查看设备信息,已经卷标是否被修改
/dev/sda7: LABEL="mytest" UUID="fda5fba0-cb96-4067-892c-377c42150ceb" TYPE="ext4"

tune2fs命令:查看或修改ext系列文件系统的某些属性

     注意:块大小创建后不可修改

     tune2fs [OPTIONS] device

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

         修改超级块的内容:

         -L 'LABEL':修改卷标

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

         -j:将ext2无损升级为ext3

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

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

         -U UUID:修改UUID号

[root@CentOS6 boot]# tune2fs -l /dev/sda7
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   mytest              //卷标
Last mounted on:          <not available>
Filesystem UUID:          fda5fba0-cb96-4067-892c-377c42150ceb
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr .... //文件特性,最重要的是has_journal特性(表示支持日志功能),使用-O选项可以关闭此特性,则文件系统类型退后到ext2
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
...
Inode count:              655872         //inode个数
Block count:              10490412      //块个数
Reserved block count:     524520          //预留给管理员的空间块个数
Free blocks:              10286629
Free inodes:              655861
First block:              1
Block size:               1024         //块大小,为我们指明的1024
Fragment size:            1024
...

dumpe2fs命令:显示ext系列文件系统的属性信息

    dumpe2fs [-h] device:查看[超级块信息]所有分组块信息

用于实现文件系统检测的工具:

因进程意外中止或系统崩溃等原因导致当前操作非正常终止时,可能会造成文件损坏(挂载为文件系统标记为“dirty”);此时,应该检测并修复文件系统;建议离线进行

ext系列文件系统的专用工具:

     e2fsck:- check a Linux ext2/ext3/ext4 file system

      e2fsck [OPTIONS] device

             -y:对所有问题自动回答为yes(不建议使用,比如有文件传输了99%,手动传1%就可以了)

             -f:即使文件处于clean状态,也要强制进行检测

[root@CentOS6 boot]# e2fsck -f /dev/sda7
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
mytest: 11/655872 files (0.0% non-contiguous), 203783/10490412 blocks

fsck:- check and repair a Linux file system

  fsck [OPTIONS] device

         -t fstype:指明文件系统

         -a:无须交互自动修复所有错误

         -r:交互式修复

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

(0)
megedugaomegedugao
上一篇 2016-08-27
下一篇 2016-08-27

相关推荐

  • 第九周脚本练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; awk -F: ‘{if($NF!=”/sbin/nologin”) print $1}’ /etc/passwd | wc -l 2、写一个脚本 (1) 获取当前主机的主机名,保存于ho…

    Linux干货 2017-03-30
  • LVS的四种模型

    相关术语: vs:Virtual Server,Director,Dispatcher,Balancer rs:Real Server,upstream server,backend server lvs集群的类型: lvs-nat:修改请求报文的目标IP lvs-dr:操作封装新的MAC地址; lvs-tun:在原请求IP报文之外新加一个IP首部; lvs…

    Linux干货 2016-10-30
  • N25-第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@zf ~]# grep -E "^(root|fedora)\>" /etc/passwd | cut -d: -f1,7   &nbs…

    Linux干货 2016-12-27
  • 震惊!!iptables还能这样用!

    基本语法:iptables [-t 表] [操作命令] [链][规则匹配器][-j 目标动作] 系统的INPUT和OUTPUT默认策略为DROP; # iptables -P INPUT DROP # iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin…

    系统运维 2017-04-18
  • keepalived+lvs 实现站点高可用

    lvs实现负载均衡
    keepalived 解决 director单点和realserver监控检测

    2017-12-13
  • 细说CP使用

    cp详细用法和常用选项

    Linux干货 2017-11-26