磁盘管理

来源:互联网 发布:广东省软件企业评估 编辑:程序博客网 时间:2024/05/22 13:02

磁盘管理

一.磁盘类型及结构 (只讲机械硬盘)

1.现今计算机市场普遍的磁盘分为两种,一种为老式的机械式硬盘,一种为新型的固态硬盘。

—机械硬盘:

机械硬盘主要由盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。优点是:存储的空间大,价格与固态比更便宜些,而且文件丢失了的话具有可恢复性。缺点是:存储的速度慢

—固态硬盘:

固态硬盘邮固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。优点是:存储空间大,而且性能很好,存储速率相对于机械硬盘要快很多。缺点是:价格贵,一般相等的容量是机械硬盘的8-10 倍 , 不具有可恢复性。

2.机械硬盘的存储格式

机械硬盘分为: track : 磁道, cylinder:柱面, secotr: 扇区(一个扇区 512 bytes)
分区是以柱面来进行分区的,一块硬盘里分有多个存储盘片,而每个盘面正反两面都有一个磁头进行数据的存储。
硬盘图解

3.硬盘的分区结构表

分区表分为MBR,GPT 两者不同的在于 MBR的分区只支持4个主分区,或3个主分区,一个扩展分区 (扩展分区下可以分逻辑分区)MBR分区的硬盘最大支持容量只有2TB而相对于GPT分区可以支持128个主分区,且GPT分区表还做到了备份功能,容量还是MBR的N倍,显而易见两者的功能有多大的差异。

二.分区

当一块新硬盘上架设备后我们怎么去操作,怎么去划分,要有个总体的构思。

1. 首先进行分区的结构划分。使用parted工具

[root@CentOS6 ~]# parted /dev/sdb mklabel msdos <–分为MBR分区
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be
lost. Do you want to continue?
Yes/No? y
Information: You may need to update /etc/fstab.

2. 进行磁盘的分区 使用fdisk

[root@CentOS6 ~]# fdisk /dev/sdb <–进入分区模式
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): m <–输入m可以查看到fdisk的帮忙文档
d delete a partition <– 删除分区
l list known partition types <–列表出不清楚的分区模式
m print this menu <–显示帮助信息
n add a new partition <—创建新的分区
o create a new empty DOS partition table <–创建一个空的新分区表
p print the partition table <– 打印这个分区表
q quit without saving changes <– 不保存修改退出
t change a partition’s system id <–修改分区系统ID
v verify the partition table <–验证这个分区表
w write table to disk and exit <–保存写入分区可笑式

依具上面给出的命令信息,我们可以进行分区

Command (m for help): n     创建新分区Command action   e   extended            <-提示是扩展分区还是主分区   p   primary partition (1-4)p                          <-我们分主分区,所以输入PPartition number (1-4): 1  <-分区号码为1First cylinder (1-26108, default 1):    <- 提示我们以硬盘的哪个分区块开始分,默认即可Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-26108, default 26108): +10G    <-分10GCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 2First cylinder (1307-26108, default 1307): Using default value 1307Last cylinder, +cylinders or +size{K,M,G} (1307-26108, default 26108): +10GCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 3First cylinder (2613-26108, default 2613): Using default value 2613Last cylinder, +cylinders or +size{K,M,G} (2613-26108, default 26108): +50GCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pSelected partition 4First cylinder (9141-26108, default 9141):  Using default value 9141Last cylinder, +cylinders or +size{K,M,G} (9141-26108, default 26108): Using default value 26108Command (m for help): p      <--显示我们当前的分区系统Disk /dev/sdb: 214.7 GB, 214748364800 bytes255 heads, 63 sectors/track, 26108 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efc47   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1306    10490413+  83  Linux/dev/sdb2            1307        2612    10490445   83  Linux/dev/sdb3            2613        9140    52436160   83  Linux/dev/sdb4            9141       26108   136295460   83  Linux

我们分了四个主分区,但我们不想以后没扩展性,所以我们再次删除做一个扩展分区

Command (m for help): d            <-删除分区Partition number (1-4): 4          <-删除4分区Command (m for help): n            Command action   e   extended   p   primary partition (1-4)e                                  <-我们重新创建为扩展分区  输入eSelected partition 4First cylinder (9141-26108, default 9141): Using default value 9141Last cylinder, +cylinders or +size{K,M,G} (9141-26108, default 26108): Using default value 26108Command (m for help): pDisk /dev/sdb: 214.7 GB, 214748364800 bytes255 heads, 63 sectors/track, 26108 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efc47   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1306    10490413+  83  Linux/dev/sdb2            1307        2612    10490445   83  Linux/dev/sdb3            2613        9140    52436160   83  Linux/dev/sdb4            9141       26108   136295460    5  ExtendedCommand (m for help): n    <-主分区已满,再次创建的分区为逻辑分区。First cylinder (9141-26108, default 9141): Using default value 9141Last cylinder, +cylinders or +size{K,M,G} (9141-26108, default 26108): +50GCommand (m for help): pDisk /dev/sdb: 214.7 GB, 214748364800 bytes255 heads, 63 sectors/track, 26108 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efc47   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1306    10490413+  83  Linux/dev/sdb2            1307        2612    10490445   83  Linux/dev/sdb3            2613        9140    52436160   83  Linux/dev/sdb4            9141       26108   136295460    5  Extended/dev/sdb5            9141       15668    52436128+  83  LinuxCommand (m for help): w       <-写入分区表,保存The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.按"q" 退出

分区完了我们可以用fdisk -l 来查看分区情况

[root@CentOS6 ~]# fdisk -lDisk /dev/sda: 214.7 GB, 214748364800 bytes255 heads, 63 sectors/track, 26108 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000e2eae   Device Boot      Start         End      Blocks   Id  System/dev/sda1   *           1         131     1048576   83  LinuxPartition 1 does not end on cylinder boundary./dev/sda2             131        6658    52428800   83  Linux/dev/sda3            6658       13032    51200000   83  Linux/dev/sda4           13032       26109   105036800    5  Extended/dev/sda5           13033       13294     2097152   82  Linux swap / SolarisDisk /dev/sdb: 214.7 GB, 214748364800 bytes255 heads, 63 sectors/track, 26108 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efc47   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1306    10490413+  83  Linux/dev/sdb2            1307        2612    10490445   83  Linux/dev/sdb3            2613        9140    52436160   83  Linux/dev/sdb4            9141       26108   136295460    5  Extended/dev/sdb5            9141       15668    52436128+  83  Linux

三.文件系统

1.文件系统及类型

文件系统是操作系统中负责管理和存储文件信息的软件机构称为文件管理系统。系统不一样文件系统有可能也不一样,以下做下主流的文件系统分类。  Windows    : FAT , NTFS  Linux      : ext2 , ext3 , ext4 , xft , btrfs , reiserfs , jfs , swap(交换分区)    Unix      : FFS , UFS , JFS2网络文件系统   : NFS , CIFS集群文件      : GFS2 , OCFS2分布式文件系统 :  ceph , moosefs , mogilefs , GlusterFS , Lustre 以前的文件系统除开 ext2,vfat 不支持journal日志功能,现主流的CentOS6 默认的ext4  CentOS7 默认的xft  都支持 

2.文件系统工具

mkfs FS_TYPE /DEV/DEVICE     FS_TYPE : ext2 , ext3 , ext4      -t { ext2 | ext3 | ext4 }     -b{1024 | 2048 | 4096 }     ( 块定义之后,后期不能改变 )     -L 'LABEL'                 (加了卷标后用blkid查看   LABEL - 卷标    )     -j  相当于-t ext3 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3     -I #  :  为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;     -N#: 为数据空间创建个多少个inode;     -m# :  为管理人员预留的空间占据的百分比; 系统默认预留5%  -m %5     -o FEATURE [,…]: 启用指定特性     -o ^FEATURE   关闭指定特性mkswap  创建交换分区    mkswap /DEV/DEVICE

3.事例

“`
[root@CentOS6 ~]# blkid <–查看当前的设备信息,可能查看到TYPE
/dev/sda2: UUID=”17d0739b-d055-4263-8d7a-9baab4496bbe” TYPE=”ext4”
/dev/sda1: UUID=”38fd89b8-6de2-4a1e-8856-147774a5ae91” TYPE=”ext4”
/dev/sda3: UUID=”16c6b3bb-bdf9-4b5c-93fc-9b59fa6b25d2” TYPE=”ext4”
/dev/sda5: UUID=”574bcdeb-65ea-46d6-9de3-958e2bc16f37” TYPE=”swap”
[root@CentOS6 ~]# mkfs.ext4 /dev/sdb1 <– 把/dev/sdb1格为ext4分区
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@CentOS6 ~]# blkid <–可以看到/dev/sdb1 TYPE设置为ext4了
/dev/sda2: UUID=”17d0739b-d055-4263-8d7a-9baab4496bbe” TYPE=”ext4”
/dev/sda1: UUID=”38fd89b8-6de2-4a1e-8856-147774a5ae91” TYPE=”ext4”
/dev/sda3: UUID=”16c6b3bb-bdf9-4b5c-93fc-9b59fa6b25d2” TYPE=”ext4”
/dev/sda5: UUID=”574bcdeb-65ea-46d6-9de3-958e2bc16f37” TYPE=”swap”
/dev/sdb1: UUID=”3fcff420-d616-46b8-b289-542e82095940” TYPE=”ext4”

我们也可以用tune2fs来查看精确的文件系统信息 :

[root@CentOS6 ~]# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: 文件系统卷标名
Last mounted on: 最后一次挂载
Filesystem UUID: 3fcff420-d616-46b8-b289-542e82095940 文件系统的uuid
Filesystem magic number: 0xEF53 文件系统的魔数
Filesystem revision #: 1 (dynamic) 文件系统的修改
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none) 默认挂载选项
Filesystem state: clean 文件系统的状态
Errors behavior: Continue 报错信息
Filesystem OS type: Linux 文件系统OS类型
Inode count: 655776 inode总数
Block count: 2622603 Block总数
Reserved block count: 131130 保留的block总数
Free blocks: 2542903 可使用的block总数
Free inodes: 655765 可使用的inode总数
First block: 0 第一个block
Block size: 4096 block大小
Fragment size: 4096
Reserved GDT blocks: 640 保留的GDT block
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8096
Inode blocks per group: 506
Flex block group size: 16
Filesystem created: Wed Aug 9 02:31:45 2017
Last mount time: n/a
Last write time: Wed Aug 9 02:31:46 2017
Mount count: 0
Maximum mount count: 33
Last checked: Wed Aug 9 02:31:45 2017
Check interval: 15552000 (6 months)
Next check after: Mon Feb 5 02:31:45 2018
Lifetime writes: 291 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: dfef22b7-8086-4386-9596-cfd1855a5862
Journal backup: inode blocks
[root@CentOS6 ~]#

我们可以用选项里的参数给文件系统修改参数,这里就不做演示了

四.文件系统检测

  1. fsck : File System Check ( 修复不能挂载 , 检查也一样不能挂载 mount )
    fsck.FS_TYPE
    fsck -f FS_TYPE
    -a : 自动修复错误
    -r : 交互式修复错误
    Note: FS_TYPE一定要与分区上已经文件类型相同
    如:
    [root@CentOS6 ~]# fsck.ext4 /dev/sdb1 检测/dev/sdb1
    e2fsck 1.41.12 (17-May-2010)
    /dev/sdb1: clean, 11/655776 files, 79700/2622603 blocks 这文件系统是干净的,因为还没挂载使用过

  2. e2fsck : ext 系统文件专用的检测修复工具
    -y : 自动回答为yes
    -f : 强制修复

原创粉丝点击