首页 >>  正文

fdisk分区命令使用

来源:baiyundou.net   日期:2024-09-24

作者:不知道取什么名好

背景:

使用的是黑群晖,系统版本是ds920+ dsm7.0版本

注意以下操作和dsm6有所区别!!!


因为最近折腾黑群晖的x540 x520万兆网卡,结果和主板上的m2转sata扩展卡冲突

导致正在修复中的raid5阵列中的一块盘掉盘,失去同步

重启后,三块硬盘其中一块正常,正在修复的那块硬盘直接损毁,最后一块出现系统分区无法访问。

并且出现警告。

添加图片注释,不超过 140 字(可选)

因为我的系统分区无法访问的标志在我修复后就没了,就没放那个图了


装回去等待损毁的那块修复完成,但是那块无法访问系统分区的依旧无法访问。

本来这种系统分区无法访问在大多数情况下可以通过点击“修复”按钮修复对应无法访问的硬盘,

但是dsm中却没有这种修复的办法。

网上也没有完善的修复教程,这就成了这篇文章的创作原因。


(如果你觉得把这块硬盘停用,并且关机取出来

再装回去等待完全修复是一个好办法的话,请直接跳过这篇帖子,我只是觉得为了修复一个2G的分区等待一整天不是很合理)

简单记录一下修复的过程。

顺带提一下

如果是单盘存储池出现系统分区无法访问,可以的存储池右上角点击转换读写

由仅读改成读写模式,重启后就能恢复,无需下面的方法。


思路:

在网上找教程找了很久,中文外文都逛了一圈,不是不适应就是很复杂

直到看到这个帖子

【图片】无法访问系统分区,没有修复按钮【群晖吧】_百度贴吧tieba.baidu.com/p/7658824387#142508620945l

添加图片注释,不超过 140 字(可选)

这位用户提到的方法,感觉可行性很高。

可以一试


过程:

1.SSH登陆群晖

我们需要使用群晖的命令行工具,通过SSH登陆。

正常通过网页登陆群晖的页面,打开控制面板-->终端机和SNMP,勾选启动SSH功能。

添加图片注释,不超过 140 字(可选)

用ssh终端工具登陆群晖

你可以使用windows自带的powershell或者windows terminal

(都2023了,真的没必要专门下载一个Putty来登陆linux服务器了,这些工具windows都自带的。

如果你是熟悉linux的用户,直接用terminal登陆就行。

\nssh username@ip

username 就是你平时登陆群晖的用户名。

提示输入密码登陆,出现以下提示就登陆成功了

Synology strongly advises you not to run commands as the root user, who has\nthe highest privileges on the system. Doing so may cause major damages\nto the system. Please note that if you choose to proceed, all consequences are\nat your own risk.


2.fdisk查看硬盘信息

我们首先查看一下群晖硬盘信息

使用sudo fdisk -l直接查看会出现一大堆信息,我们重点看sata硬盘

可以使用grep过滤一些信息

\n  ~ sudo fdisk -l | grep sata1   # 对应硬盘1\nDisk /dev/sata1: 894.3 GiB, 960197124096 bytes, 1875385008 sectors\n/dev/sata1p1         2048    4982527    4980480   2.4G fd Linux raid autodetect\n/dev/sata1p2      4982528    9176831    4194304     2G fd Linux raid autodetect\n/dev/sata1p3      9437184 1875180191 1865743008 889.7G fd Linux raid autodetect\n  ~ \n  ~ sudo fdisk -l | grep sata2 # 对应硬盘2\nDisk /dev/sata2: 12.8 TiB, 14000519643136 bytes, 27344764928 sectors\n/dev/sata2p1    2048     4982527     4980480  2.4G Linux RAID\n/dev/sata2p2 4982528     9176831     4194304    2G Linux RAID\n/dev/sata2p3 9437184 27344560127 27335122944 12.7T Linux RAID\n\n  ~ sudo fdisk -l | grep sata3\nDisk /dev/sata3: 12.8 TiB, 14000519643136 bytes, 27344764928 sectors\n/dev/sata3p1    2048     4982527     4980480  2.4G Linux RAID\n/dev/sata3p2 4982528     9176831     4194304    2G Linux RAID\n/dev/sata3p3 9437184 27344560127 27335122944 12.7T Linux RAID\n\n  ~ sudo fdisk -l | grep sata4\nDisk /dev/sata4: 12.8 TiB, 14000519643136 bytes, 27344764928 sectors\n/dev/sata4p1    2048     4982527     4980480  2.4G Linux RAID\n/dev/sata4p2 4982528     9176831     4194304    2G Linux RAID\n/dev/sata4p3 9437184 27344560127 27335122944 12.7T Linux RAID

从上面输出的信息可以看出

一个sata编号对应一块硬盘,我的系统中一共有四块sata硬盘可用,分别对应1234。

硬盘大小是14T

添加图片注释,不超过 140 字(可选)

sata1是1tb的sata接口的ssd,

sata2-4是作为raid5阵列中的三块硬盘

其中sata3也就是硬盘3是出现系统分区无法访问的硬盘。

记住它的编号,后面要用。


另一个有用的信息

/dev/sata3p1    2048     4982527     4980480  2.4G Linux RAID\n/dev/sata3p2 4982528     9176831     4194304    2G Linux RAID

就是很容易看出来群晖的机械硬盘有3个分区,并不是整个硬盘作为raid5阵列的内容。

包括第一个2.4G的分区p1,第二个2G的分区p2,第三个就是作为raid5阵列的分区。

并且正常情况下raid里面的机械的所有分区都会被加入到群晖的RAID当中。


3. 查看群晖阵列状况

使用cat /proc/mdstat命令

  ~ cat /proc/mdstat \nPersonalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raidF1] \nmd4 : active raid1 sata1p3[0]\n      932870464 blocks super 1.2 [1/1] [U]\n      \nmd3 : active raid5 sata4p3[3] sata3p3[2] sata2p3[1]\n      27335120896 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]\n      \nmd1 : active raid1 sata1p2[0] sata4p2[2] sata2p2[1]\n      2097088 blocks [16/3] [UUU_____________]\n      \nmd0 : active raid1 sata1p1[0] sata4p1[2] sata2p1[1]\n      2490176 blocks [16/3] [UUU_____________]\n      \nunused devices: 


输出信息有点复杂,我们从下往上看。


可以发现md0 和md1阵列对应的群晖同步系统,存在于所有盘中的raid1阵列。

md1 : active raid1 sata1p2[0] sata4p2[2] sata2p2[1]\n      2097088 blocks [16/3] [UUU_____________]\n      \nmd0 : active raid1 sata1p1[0] sata4p1[2] sata2p1[1]\n      2490176 blocks [16/3] [UUU_____________]

240000个和200000个block数量分别对应2.4g的分区和2g的分区,也就是p1 p2.


所有硬盘除了sata3之外,硬盘1 2 4的p1分区默认加入m0,阵列

p2分区默认加入m1阵列

这就是群晖所有硬盘中存在dsm系统的机制。


看到这里,很容易理解md2 md3 md4

  ~ cat /proc/mdstat \nPersonalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raidF1] \nmd4 : active raid1 sata1p3[0]\n      932870464 blocks super 1.2 [1/1] [U]\n      \nmd3 : active raid5 sata4p3[3] sata3p3[2] sata2p3[1]\n      27335120896 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]

从分区大小可以看出,

md3就是对应 sata2 sata3 sata4的p3组成的raid5阵列

md4就是960g的ssd组成的raid1阵列

在群晖中实际以单盘的形式存在


3.通过madam修复阵列

mdadm是linux系统上一个组建raid的命令行工具

我也是第一次用到。

根据贴吧那位用户的提示,应该可以通过mdadm修复阵列中的系统分区。


注意!!!

以下操作执行前请确认无误,造成数据损毁概不负责,重要的事情说三遍

注意!!!

以下操作执行前请确认无误,造成数据损毁概不负责,重要的事情说三遍

注意!!!

以下操作执行前请确认无误,造成数据损毁概不负责,重要的事情说三遍


回看mdstat的内容

  ~ cat /proc/mdstat \nPersonalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raidF1] \nmd4 : active raid1 sata1p3[0]\n      932870464 blocks super 1.2 [1/1] [U]\n      \nmd3 : active raid5 sata4p3[3] sata3p3[2] sata2p3[1]\n      27335120896 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]\n      \nmd1 : active raid1 sata1p2[0] sata4p2[2] sata2p2[1]\n      2097088 blocks [16/3] [UUU_____________]\n      \nmd0 : active raid1 sata1p1[0] sata4p1[2] sata2p1[1]\n      2490176 blocks [16/3] [UUU_____________]


群晖出现系统分区无法访问实际上是

本应该加入md0和md1的sata硬盘的p1 p2从阵列中脱离了,掉盘了

所以在mdstat内容的md0 md1中其他的sata硬盘都有,偏偏缺失了sata3的p1 p2

所以我们只需要两行命令将sata3的p1 重新加入md0 ,sata3p2加入m1即可。


sudo mdadm -a /dev/md0 /dev/sata3p1  // mdadm需要使用sudo执行\nPassword: \nmdadm: added /dev/sata3p1  //返回这句说明执行成功了

-a 参数对应add

Usage: mdadm arraydevice options component devices...

--add -a : hotadd subsequent devices to the array

--re-add : subsequent devices are re-added if there were

需要注意的这里因为加入阵列的是分区partition,不是disk。

对应的mdadm操作使用的是sata3的分区也就是p1,而不是直接用sata3。


返回执行成功后我们检查mdstat状态

cat /proc/mdstat\nPersonalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raidF1] \nmd4 : active raid1 sata1p3[0]\n      932870464 blocks super 1.2 [1/1] [U]\n      \nmd3 : active raid5 sata4p3[3] sata3p3[2] sata2p3[1]\n      27335120896 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]\n      \nmd1 : active raid1 sata1p2[0] sata4p2[2] sata2p2[1]\n      2097088 blocks [16/3] [UUU_____________]\n      \nmd0 : active raid1 sata3p1[3] sata1p1[0] sata4p1[2] sata2p1[1]  //发现sata3p1已经出现在了md0\n      2490176 blocks [16/4] [UUUU____________]\n      \nunused devices: 

sata3p1出现在了md0阵列当中,说明添加分区成功了。

但是查看群晖web储存管理器,raid5的硬盘3还是处于系统分区无法访问的状态


说明光添加p1还不够,还需要添加p2到md1当中。

继续

sudo mdadm -a /dev/md1 /dev/sata3p2\nmdadm: added /dev/sata3p2

查看mdstat

  ~ cat /proc/mdstat\nPersonalities : [raid1] [raid6] [raid5] [raid4] [raidF1] \nmd3 : active raid5 sata4p3[3] sata3p3[2] sata2p3[1]\n      27335120896 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]\n      \nmd4 : active raid1 sata1p3[0]\n      932870464 blocks super 1.2 [1/1] [U]\n      \nmd1 : active raid1 sata1p2[0] sata3p2[3] sata4p2[2] sata2p2[1]\n      2097088 blocks [16/4] [UUUU____________]\n      \nmd0 : active raid1 sata1p1[0] sata3p1[3] sata4p1[2] sata2p1[1]\n      2490176 blocks [16/4] [UUUU____________]\n      \nunused devices: 

sata3的p2也成功加入了md1阵列。


查看存储池,一切恢复正常,警告是因为暂停了数据清理任务,不影响。

然后重启

重启后一切也正常。

添加图片注释,不超过 140 字(可选)



这就是完整的恢复过程了

你只需要理解群晖的硬盘分区和阵列大致机制就能自己动手修复了

虽然这个问题我用了三四年群晖才遇到,但是确实有点头疼。

一旦存储池不修复,打开web就会一直弹出警告,很烦人。


明明这么简单的问题,群晖官方却不给出一个解决方式,浪费用户的时间

写出来是希望大家不要在这种问题上浪费时间。

更不要因为听信别人馊主意,格式化某个分区,导致分区数据。


查看文章精彩评论,请前往什么值得买进行阅读互动

","gnid":"9f1c112a1403beccc","img_data":[{"flag":2,"img":[{"desc":"","height":"1051","title":"","url":"https://p0.ssl.img.360kuai.com/t01108c6ee1098c8d3a.jpg","width":"1080"},{"desc":"","height":"493","title":"","url":"https://p0.ssl.img.360kuai.com/t01749cc98f5a25c67e.jpg","width":"1080"},{"desc":"","height":"268","title":"","url":"https://p0.ssl.img.360kuai.com/t0152831e3b50b9e78f.jpg","width":"1080"},{"desc":"","height":"405","title":"","url":"https://p0.ssl.img.360kuai.com/t019d6f694af1c318af.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,disu_label,fts0,sts0","powerby":"pika","pub_time":1698080385000,"pure":"","rawurl":"http://zm.news.so.com/dcddb91720665ed479ff00baef692956","redirect":0,"rptid":"0d532eec7006227e","rss_ext":[],"s":"t","src":"什么值得买","tag":[{"clk":"kdigital_1:硬盘","k":"硬盘","u":""}],"title":"群晖DSM硬盘无法访问系统分区问题解决方法

宦怡要1520fdisk命令如何使用 -
平玲美18519901589 ______ Fdisk是微软公司推出的一款简易的硬盘分区程序,使用方便、功能强大,因而受到许多用户的喜欢. 其使用方法(有图解)见: http://www.54iter.com/hardware/hd/200512/hardware_19674.html 希望我的回答能帮助到你!

宦怡要1520linux系统下fdisk命令怎么用 -
平玲美18519901589 ______ 磁盘分区管理命令:fdisk root@local:~#fdisk /dev/sdb (进入磁盘管理,可使用U盘测试) Command (m for help): p (查看所有分区) Command (m for help): a (设置可引导分区,就是*标记) Command (m for help): n (创建一个新分区,给新...

宦怡要1520在dos下使用fdisk命令如何分区?
平玲美18519901589 ______ ①把制作好的DOS启动盘插入软盘驱动器中,打开计算机电源.计算机首先进行自检,自检通过以后进入DOS操作系统.待DOS完全转入内存以后,系统提示修改日期信息,然后屏幕出现命令提示符A:\>,等待用户进行下一步的操作. ②在命令提示符后输入Fdisk命令,既A:\Fdisk.输入Fdisk命令后按回车键. ③此时屏幕上出现是否使用大硬盘支持的提示.由于现在的硬盘容量已经非常大,因此选择对大硬盘的支持,在提示输入处输入“Y”. ④输入了“Y”以表示使用大硬盘,然后按回车键.屏幕上将出现Fdisk程序主界画面

宦怡要1520详细的FDISK命令 -
平玲美18519901589 ______ 楼主,免了吧,FDISK不支持那么大的硬盘. 推荐使用PQ或者PM. 如果你真的只需要FDISK,那么: FDISK分区命令参数开关详解 --FDISK分区命令参数开关详解 /ACTOK 不检测坏扇区 /CMBR 重新建立指定磁盘的主引导记录 /EXT 建立扩...

宦怡要1520如何使用FDISK对硬盘进行分区及FORMAT的格式化?
平玲美18519901589 ______ FORMAT 功能:对磁盘进行格式化,划分磁道和扇区;同时检查出整个磁盘上有无带缺陷的磁道,对坏道加注标记;建立目录区和文件分配表,使磁盘作好接收DOS的准备. 格式:FORMAT〈盘符:〉[/S][/Q][/U] 说明: (1)命令后的盘符不...

宦怡要1520如何使用Fdisk来管理Linux上的分区 -
平玲美18519901589 ______ 展开全部3、分区工具fdisk用法介绍 fdisk命令参数介绍 p、打印分区表.n、新建一个新分区.d、删除一个分区.q、退出不保存.w、把分区写进分区表,保存并退出.实例:[root@localhost ~]# fdisk /dev/hdd 按"p"键打印分区表 这块硬磁尚...

宦怡要1520请问在DOS启动分区工具的命令是什么~!!~
平玲美18519901589 ______ DOS下给硬盘分区的命令是FDISK.用98或ME启动盘启动后,直接输入fdisk并回车,然后按照提示操作.

宦怡要1520如何使用FDISK与FORMAT命令对磁盘进行分区与格式化?
平玲美18519901589 ______ FDISK 是分区工具 FORMAT是格式化命令 分区的话 你先明白分区结构和类型 一般是一个主的 然后剩下的分成副的 在副的上分出 逻辑分区 (主=C )+(副) 然后才是(副=D. E. ) 分的时候先分主的然后分副的 然后是逻辑的 删除分区的时候...

宦怡要1520怎么用DOS分区 -
平玲美18519901589 ______ 进入dos 输入fdisk 以下来自百度回答: FDISK进行硬盘分区 分区从实质上说就是对硬盘的一种格式化.当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即MasterBootRecord,一般简称为MBR)和引导记录备...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024