CC00046.LinuxBasic——|Linux&磁盘管理.V05|

本文讲述了修复/etc/fstab文件错误的方法,包括使用root权限重启并修复,以及如何通过mount命令恢复权限。同时介绍了如何将MBR分区转换为GPT以支持大容量分区,并详细展示了使用parted命令创建、调整分区、格式化为ext4的步骤。
摘要由CSDN通过智能技术生成
一、/etc/fstab/文件修复:我们重新启动系统吧苍天啊,哪位神仙姐姐显灵了啊,真的报错了

先别哭天抹泪了仔细看看,他提示你输入 root 密码啊,好像还有戏啊,我们输入密码试试

 啊!我们又看到了系统提示符,赶快把/etc/fstab 文件修改回来吧。晕,报错了,如图 9-18 所示:

### --- 修改/etc/fstab 报错
~~~     别慌,分析下原因提示是没有写权限,那么只要把/分区重新挂载下,
~~~     挂载为读写权限不就可以修改了吗?命令如下
~~~     再去修改/etc/fstab 文件,把它改回来就可以正常启动了啊。

[root@localhost ~]# mount -o remount,rw /

二、实验专题:/etc/fstab/文件修复

### --- /etc/fstab/文件修复
### --- 模拟配置文件写错,重启报错

[root@server21 ~]# cat /etc/fstab 
/dev/sdb1 /disk1                 ext4    defaults        0 0
/dev/sdb /disk5                  ext4    defaults        0 0
~~~     实验验证只有设备名写错的时候会报错,其他参数时不会发生报错信息的。

[root@localhost ~]# mount -a
mount: /dev/sdb already mounted or /disk5 busy
### --- 重启系统
[root@server21 ~]# reboot
~~~     报错信息
Give root password for maintenance
(or type Control-D to continue):                         // 输入root密码    #ctrl+D会重启

### --- 解决方案
~~~     现在就可以编写配置文件保存退出了。
### --- 删除分区是把建立分区的过程倒过来执行
 [root@localhost ~]# vim /etc/fstab                         // 修改配置文件即可;但是文件是只读权限,需要重新挂载,把根分区挂载即可
[root@localhost ~]# mount -o remount,rw /
一、parted 命令分区
### --- parted 命令分区
~~~     我们 Linux 系统中有两种常见的分区表 MBR 分区表(主引导记录分区表)和 
~~~     GPT 分区表(GUID 分区表),其中:

### --- MBR 分区表:
~~~     支持的最大分区是2TB(1TB=1024GB);最多支持4个主分区,或3个主分区 1个扩展分区
### --- GPT 分区表:
~~~     支持最大 18EB 的分区(1EB=1024PB=1024*1024TB);最多支持 128 个分区,
~~~     其中 1 个系统保留分区,127 个用户自定义分区不过 parted 命令也有点小问题,
~~~     就是命令自身分区的时候只能格式化成 ext2 文件系统,不支持

### --- ext3 文件系统,
~~~     那就更不用说 ext4 文件系统了(截止到 CentOS 6.8 还是这样,
~~~     这里只是指不能用parted 命令把分区格式化成 ext4 文件系统,
~~~     但是 parted 命令还是可以识别 ext4 文件系统的)。
~~~     不过这没有太多的影响,因为我们可以先分区再用 mkfs 进行格式化嘛!

二、parted 交互模式

### --- parted 交互模式
~~~     打算继续划分/dev/sdb 硬盘
~~~     的等待输入交互命令的位置

[root@localhost ~]# parted /dev/sdb
GNU Parted 2.1
~~~     使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)        parted
parted交互命令说明
check NUMBER做一次简单的文件系统检测
cp [FROM-DEVICT] FROM-NUMBER TO-NUMBER复制文件系统到另外一个分区
help [COMMAND]显示所有的命令帮助
mklabel,mktable,LABEL-TYPE创建新的磁盘卷标(分区表)
mkfs NUMBER FS-TYPE在分区上建立文件系统
mkpart PART-TYPE [FS-TYPE] START END创建一个分区
mkpartfs PART-TYPE FS-TYPE START END移动分区
name NUMBER NAME给分区命名
print [devices|free|list,all|NUMBER]显示分区表,活动设备,空闲空间,所有分区
quit退出
rescue START END修复丢失的分区
resize NUMBER START END修改分区大小
rm NUMBER删除分区
select DEVICE选择需要编辑的设备
set NUMBER FLAG STATE改变分区表的状态
unit UNIT设置默认的单位
Version显示版本

一、建立分区

### --- 查看分区

(parted) print
~~~     输入 print 指令
Model: VMware, VMware Virtual S (scsi)                      // 硬盘参数,是虚拟机啊
Disk /dev/sdb: 21.5GB                                       // 硬盘大小
Sector size (logical/physical): 512B/512B                   // 扇区大小
Partition Table: msdos                                      // 分区表类型,就是 MBR 分区表
 Number     Start       End         Size        Type   File system 标志
1           32.3kB      5379MB      5379MB  primary
2           5379MB      21.5GB      16.1GB  extended
5           5379MB      7534MB      2155MB  logical ext4
6           7534MB      9689MB      2155MB  logical ext4
~~~     看到了我们使用 fdisk 分的区,其中 1 分区没有格式化,2 分区是扩展分区不能格式化
~~~     使用 print 可以查看分区表信息,包括硬盘参数,硬盘大小,扇区大小,
~~~     分区表类型和分区信息。分区信息总共七列,分别是:
Number:                                                     // 分区号
Start:                                                      // 分区起始位置,这里不再像 fdisk 用柱面表示,而是使用 Byte 更加直观
End:                                                        // 分区结束位置
Size:                                                       // 分区大小
Type:                                                       // 分区类型
File system:                                                // 文件系统类型。我不是说 parted 不支持 ext4 文件系统吗?注意,我一直都是说 parted 不能直接把分区直接格式化成 ext4 文件系统,但是它是可以识别的。
~~~     标志:Flags,就是分区的标记

二、修改成 GPT 分区表

### --- 修改成 GPT 分区表
~~~     修改了分区表,如果这块硬盘已经有分区了,那么原有分区和分区中的数据都会消失,
~~~     而且需要重启系统才会生效。
~~~     还有我们转换分区表的目的是为了支持大于 2TB 的分区,如果分区并没有大于 2TB,
~~~     那么这步是可以不执行的
~~~     注意:一定要把/etc/fstab 文件中和原有分区的内容删除掉,才能重启动。
~~~     要不系统启动就一定会报错的。

(parted) mklabel gpt
~~~     修改分区表命令
~~~     警告: 正在使用 /dev/sdb 上的分区。                     // 由于/dev/sdb 分区已经挂载,所以有警告
~~~                                                          // 注意如果强制修改,原有分区及数据会消失
~~~     忽略/Ignore/放弃/Cancel? ignore                      // 输入 ignore 忽略报错
~~~     警告: 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? yes                                    // 输入 yes
~~~     警告: WARNING: the kernel failed to re-read the partition table on /dev/sdb (设备或资源忙). As a result, it may not reflect all of
your changes until after reboot.                            // 下次重启后,才能生效
(parted) print                                              // 查看下分区表吧
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt                                        // 分区表已经变成 GPT
Number Start End Size                                       // File system Name 标志
                                                            // 所有的分区都消失了

三、 建立分区

### --- 因为修改过了分区表,所以/dev/sdb 中的所有数据都消失了,
### --- 所以我们可以重新对这块硬盘分区了。不过建立分区时,
### --- 默认文件系统就只能建立成 ext2 了,命令如下:(parted) mkpart
### --- 输入创建分区命令,后面不要参数,全部靠交互指定
~~~     分区名称? []? disk1                分区名称,我起名叫 disk1
~~~     文件系统类型? [ext2]?              文件系统类型,直接回车,使用默认 ext2
~~~     起始点? 1MB                        分区从 1MB 开始
~~~     结束点? 5GB                        分区到 5GB 结束
### --- 分区完成
~~~     1   1049kB 5000MB 4999MB       disk1        分区 1 已经出现
~~~     不知道大家注意到了吗?我们现在的 print 查看的分区,
~~~     和第一次查看 MBR 分区表的分区时有些
~~~     不一样了,少了 Type 这个字段,也就是分区类型的字段,多了 Name 分区名字段。
~~~     分区类型是标识主
~~~     分区、扩展分区和逻辑分区的,不过这种标识只在 MBR 分区表中使用,
~~~     我们现在已经变成了 GPT 分区表了,所以就不再有 Type 类型了。
~~~     也就说折磨我们很久的主分区、扩展分区和逻辑分区的概念不再有用了,阿门!
~~~     (parted) print                      查看下吧

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End  Size File system Name 标志

四、 建立文件系统

### --- 分区分完了,我们还需要格式化。不过我们已经知道如果使用 parted 交互命令格式化的话,
~~~     只能格式化成 ext2 文件系统。我们这里是要演示下 parted 命令的格式化方法,
~~~     所以就格式化成 ext2吧,命令如下:
(parted) mkfs
~~~     格式化命令(很奇怪也是 mkfs,但是这只是 parted 的交互命令)
WARNING: you are attempting to use parted to operate on (mkfs) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
~~~     警告: The existing file system will be destroyed and all data on the partition will be lost.
Do you want to continue?
~~~     是/Yes/否/No? yes            警告你格式化数据会丢失,没关系,已经丢失过了
~~~     分区编号? 1
~~~     文件系统类型? [ext2]?        指定文件系统类型,写别的也没有用,直接回车
~~~     (parted) print               格式化完成,查看下
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End  Size File system Name                     // 标志
1   1049kB 5000MB 4999MB ext2    disk1                      // 拥有了文件系统
~~~     如果要格式化成 ext4 文件系统,
~~~     请 mkfs 命令帮忙吧(注意不是 parted 交互命令中的 mkfs,而是系统命令 mkfs)!

五、 调整分区大小

### --- parted 命令还有一大优势,就是可以调整分区的大小(windows 中也可以实现,
~~~     不过要不需要转换成动态磁盘,要不需要依赖第三方工具,如硬盘分区魔术师)。
~~~     起始 Linux 中 LVM 和 RAID 是可以支持分区调整的,
~~~     不过这两种方法也可以看成是动态磁盘方法,我们在下一个章节中介绍。
~~~     使用 parted命令调整分区要更加简单。
### --- 注意:parted 调整已经挂载使用的分区时,是不会影响分区中的数据的,
~~~     也就是说数据不会丢失。但是一定要先卸载分区,再调整分区大小,
~~~     否则数据是会出现问题的。还有要调整大小的分区必须已经建立了文件系统(格式化),
~~~     否则会报错
### --- 命令如下:
(parted) resize 
~~~     分区编号? 1                                         // 指定要修改的分区编号
~~~     起始点? [1049kB]? 1MB                               // 分区起始位置
~~~     结束点? [5000MB]? 6GB                               // 分区结束位置
~~~     (parted) print                                      // 查看下
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End  Size          File system Name            // 标志
1   1049kB 6000MB 5999MB        ext2    disk1               // 分区大小改变

六、 删除分区

### --- 删除分区
(parted) rm
### --- 删除分区命令
~~~     分区编号? 1                                         // 指定分区号
~~~     (parted) print                                      // 查看下
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
~~~     Number Start End Size File system Name 标志   分区消失
~~~     还有件事要注意,parted 中所有的操作都是立即生效,没有保存生效的概念。
~~~     这点和 fdisk 交互命令明显不同,所以所做的所有操作大家要倍加小心。
~~~     那么到底使用 fdisk 进行分区?还是 parted 命令呢?这个完全看个人习惯,
~~~     我们更加习惯 fdisk命令。

七、修改成GPT分区:实验专题

### --- 清除之前的自动挂载操作
### --- 修改成GPT分区

[root@server21 ~]# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                               // 使用help执行帮助
(parted) print                                              // 打印                                                       
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos                                      // 分区类型

Number  Start   End     Size    Type      File system  Flags
 1      32.3kB  21.5GB  21.5GB  primary   ext4
 2      21.5GB  107GB   85.9GB  extended
 5      21.5GB  23.6GB  2155MB  logical   ext4
Warning: Partition(s) on /dev/sdb are being used.                         
Ignore/Cancel? Ignore                                       // 忽略或者放弃;
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? yes                                                 // yes再次确认                                                       
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sdb (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.  #分区很忙,需要下次重启后生效
(parted) print                                              // 查看
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt                                        // 分区有了

Number  Start  End  Size  File system  Name  Flags          // 之前旧的分区没有了。
(parted) quit                                                             
[root@server21 ~]# reboot                                   // 重启
### --- 建立分区

[root@server21 ~]# parted /dev/sdb 
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
### --- 调整分区大小

(parted) mkpart                                             // 创建分区,后面不要参数,全部靠交互指令                                             
Partition name?  []? disk1                                  // 分区名称,自己定义
File system type?  [ext2]?                                  // 文件系统类型,直接回车                     
Start? 1MB                                                  // 起始点,分区从1MB开始                 
End? 20GB                                                   // 结束点,分区到20GB结束    #分区完成
(parted) print                                                            
Number  Start   End     Size    File system  Name   Flags   // 查看新建的分区
 1      1049kB  20.0GB  20.0GB               disk1          // 此刻是没有文件系统的,下面进行格式化分区创建文件系统
### --- 建立分文件系统

(parted) mkfs                                               // 创建分区
Yes/No? yes                                                 // 警告格式化数据会丢失,                                          
Partition number? 1                                         // 分区编号,1一个分区         
File system type?  [ext2]?                                  // 指定文件系统类型,写别的也没有用直接回车                               
(parted) print                                                           
Number  Start   End     Size    File system  Name   Flags
 1      1049kB  20.0GB  20.0GB  ext2         disk1          // 文件系统显示出来
(parted) quit                                               // 退出
Information: You may need to update /etc/fstab.
~~~     查看新建的分区

[root@server21 ~]# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       13055   104857599+  ee  GPT
### --- 格式为ext4文件系统
[root@server21 ~]# mkfs -t ext4 /dev/sdb1 
 
### --- 挂载
[root@server21 ~]# mount /dev/sdb1  /disk1/
[root@server21 ~]# mount 
/dev/sdb1 on /disk1 type ext4 (rw)
### --- 设置开机自动启动

[root@server21 ~]# vim /etc/fstab 
/dev/sdb1 /disk1                 ext4    defaults        0 0
### --- 调整分区大小:现在磁盘是20GB,改为50GB
### --- 删除分区
~~~     自动挂载需要卸载,卸载挂载。切记

[root@server21 ~]# umount /dev/sdb1  
[root@server21 ~]# parted /dev/sdb1 
(parted) print                                                            
Disk /dev/sdb1: 20.0GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number  Start  End     Size    File system  Flags
 1      0.00B  20.0GB  20.0GB  ext4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值