2.1 磁盘分区,文件系统建立
在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支持大于 2TB 的分区,则需要使用 parted 命令,当然 parted 命令也能分配较小的分区。
MBR 分区最大支持 2.2TB,GPT 分区最大支持 18EB。
(1)磁盘分区(主分区、扩展分区、逻辑分区)
hd 表示 IDE 设备(方形接口)
vd 表示虚拟化设备
sd 表示 SCSI 设备(圆形接口) /dev/sda7 表示 SCSI设备,第一块磁盘第七个分区
fdisk
必要参数:
-l 列出素所有分区表
-u 与"-l"搭配使用,显示分区数目
选择参数:
-s 指定分区
-v 版本信息
菜单操作说明
● m :显示菜单和帮助信息
● a :活动分区标记/引导分区
● d :删除分区
● l :显示分区类型
● n :新建分区
● p :显示分区信息
● q :退出不保存
● t :设置分区号
● v :进行分区检查
● w :保存修改
● x :扩展应用,高级功能
● u:改变使用的存储单位
//查看新的磁盘信息
[root@localhost ~]# fdisk -l
//列出系统分区
[root@localhost ~]# fdisk /dev/sdb
创建方法:
分区可以按主分区(priamry partition)或扩展分区(extended partition)创建。主分区可以被文件系统直接格式化,而扩展分区只能容纳其它逻辑分区。扩展分区存在的原因是每个存储设备上只能有4个分区。可以通过创建多个扩展分区,然后在扩展分区内创建逻辑分区进行扩展。
Command (m for help): n #n添加分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #进入主分区
Partition number (1-4, default 1): 1 #定义主分区数,最多4个
First sector (2048-104857599, default 2048): 1 #起始扇区,只能从最小的开始即2048
Value out of range.
First sector (2048-104857599, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +50G
Value out of range.
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +40G#添加分区大大小,可以选择扇区数量或大小
Partition 1 of type Linux and of size 40 GiB is set
Command (m for help): p #查看分区结果
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4a52ebcf
Device Boot Start End Blocks Id System
/dev/sdb1 2048 83888127 41943040 83 Linux
Command (m for help): w #保存分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# fdisk -l
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4a52ebcf
Device Boot Start End Blocks Id System
/dev/sdb1 2048 83888127 41943040 83 Linux
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d #删除分区
Selected partition 1
Partition 1 is deleted
Command (m for help): w #保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
parted
[root@localhost ~]# parted /dev/sdb
(parted) mklabel gpt #将磁盘设置为 gpt 文件格式
(parted) print #输出磁盘信息,可有可无
(parted) mkpart primary 0 -1 #将磁盘分成一个分区,如果磁盘大于 16T ,则需分多个分区,命令为:
#((parted) mkpart primary 0 16T
#(parted) mkpart primary 16T 32T
......)
#如显示有 Warning 信息,输入:
ignore
(parted) print #可有可无
(parted) quit #退出 parted
//刷新分区(让内核识别新分区)
partprobe
(2)格式化磁盘
在数据存储到分区之前,必须用某种文件系统对其进行格式化.格式化命令:mkfs.ext3,mkfs.ext4,mkfs.xfs
windows:NTFS、FAT16、FAT32
linux:FAT32、ext4、xfs、swap(交换空间,虚拟内存,缓解真实物理内存不足)
[root@localhost ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 1052672/4882432 #等待格式化结束
149 block groups
32768 blocks per group, 32768 fragments per group
8208 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
(3)手动挂载
[root@localhost ~]# mount /dev/sdb1 data0
[root@localhost ~]# mount /dev/sdb2 data1
(4)设置开机自动挂载
/etc/fstab文件的作用:
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。【一般可以设置开机自动挂载则可以不用写入/etc/fstab】
[root@localhost ~]# mount /dev/sdb /data0
[root@localhost ~]#
[root@localhost ~]# echo "/dev/sdb /data0 ext3 defaults 0 0" >> /etc/fstab
[root@localhost ~]#
[root@localhost ~]# more /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=cb75705e-9cd8-4e73-bc80-67588d78dd28 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb /data0 ext3 defaults 0 0
2.2 文件系统检测及维修
当碰上断电或者程序导致文件系统损坏或锁定时,需要特定的工具恢复文件系统。fsck命令使用/etc/fstab文件来自动决定正常挂载到系统上的存储设备的文件系统。如果存储设备尚未挂载,使用-t参数可指定文件系统类型。
此命令通常只有 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。
fsck
参数:
-a 自动修复文件系统,没有任何提示信息。
-r 采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。
-A 按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。
-t 文件系统类型 指定要检查的文件系统类型。
-C 显示检查分区的进度条。
-f 强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。
-y 自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。
-V 在检查时产生详细输出
-s 检查多个文件系统时,一次进行检查
[root@localhost ~]# umount /data0 #卸载挂载
[root@localhost ~]# fsck -y /dev/sdb1