RAID故障磁盘更换中的分区创建问题求助
RAID故障磁盘更换中的分区创建问题求助
兄弟我太懂你这种新手碰RAID故障的慌乱感了,先别慌,咱们一个个解决你的问题:
能不能让系统找到fdisk?
首先试试用绝对路径调用它,fdisk一般藏在/sbin或者/usr/sbin目录里,你直接敲sudo /sbin/fdisk -l或者sudo /usr/sbin/fdisk -l试试能不能出来。要是还不行,就把这些系统工具目录加到环境变量里:export PATH=$PATH:/sbin:/usr/sbin,之后再敲fdisk应该就能用了。如果还是找不到,那大概率你当前的救援环境没预装fdisk,咱们换别的方案。用现有内置命令替代的方法
先看看你手头的命令里有没有parted或者dd,这俩都能搞定分区表复制:- 要是有
dd:这是最直接的方法,直接把正常盘的分区表整个复制到新盘里,命令是dd if=/dev/sda of=/dev/sdb bs=512 count=1(注意把sda换成你的正常盘设备名,sdb换成新盘,一定要确认设备名没写错,不然会毁掉正常盘的数据!)。这个命令只复制前512字节的MBR分区表,速度极快,而且完全和原盘一致。 - 要是有
parted:先查看正常盘的分区信息:parted -l /dev/sda,记下每个分区的起始、结束位置、分区类型(比如主分区、RAID类型)。然后给新盘创建分区表:parted /dev/sdb mklabel gpt(或者msdos,看原盘用的是哪种),接着逐个创建和原盘一模一样的分区就行。
- 要是有
拆盘到别的Ubuntu机器上操作完全可行,甚至更稳妥
这个方法其实我更推荐新手用,毕竟在熟悉的Ubuntu环境里操作,不容易手抖出错。步骤很简单:- 把服务器里的正常盘和新盘都拆下来,接到一台正常运行的Ubuntu机器上(注意接口匹配,SATA/SAS都可以);
- 打开终端,用
fdisk -l确认两个盘的设备名(比如/dev/sda是正常盘,/dev/sdb是新盘); - 导出正常盘的分区表:
sfdisk -d /dev/sda > partition_table.txt; - 把分区表导入新盘:
sfdisk /dev/sdb < partition_table.txt; - 确认新盘分区表和原盘一致:
fdisk -l /dev/sdb,没问题就把盘装回服务器,继续后续的RAID重建步骤就行。
另外提醒一句:如果你的RAID是mdadm软RAID,复制完分区表后,要确保新盘的分区类型是Linux RAID(fdisk里是fd类型),不然RAID控制器识别不了这个分区。
备注:内容来源于stack exchange,提问作者Matthew_117
相关产品推荐
相关产品推荐

