4T 硬盘误用 fdisk 分区只有 2T 大,现在想用 parted 扩大分区 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tees
V2EX    Linux

4T 硬盘误用 fdisk 分区只有 2T 大,现在想用 parted 扩大分区

  •  
  •   tees 2018-07-06 17:51:50 +08:00 11746 次点击
    这是一个创建于 2656 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚开始用的时候,不知道大于 2T 的要用 GPT 分区表,直接用 fdisk 一路默认创建了一个分区。
    用到今天忽然提示空间不足了,一看才发现只有 2T。

    主要是想保留原来的 2T 数据,无损的扩容到 4T。
    思路:fdisk 可以无损扩容 只要分区起始 磁柱号和之前的一样,结束磁柱号又比之前分区的结束磁柱号大,就可以做到无损,就想用 parted 试试。

    当前系统: centos
    目前找到的工具:parted
    硬盘为纯数据盘 ext4 格式 只有一个分区

    使用 parted 创建 GPT 分区表的时候提示会丢失数据。
    然后在第一步“使用 parted 创建 GPT 分区表”就卡住了,提示“创建 GPT 分区表的时候提示会丢失数据”。

    有不丢失数据的方法么?
    第 1 条附言    2018-07-08 22:51:43 +08:00

    我备份了数据。

    我使用了'sxzzsf'的方法直接转GPT然后重新分区,start 2048 end -1;最后成功了,数据还在。

    感谢大家提供的方法和一定要备份的建议

    操作之前请备份数据

    操作之前请备份数据

    操作之前请备份数据

    我的分区Start是2048s 是成功的 说一下步骤

    1.卸载 sudo umount /mnt/b 2.记录下起始地址 sudo parted /dev/sdc unit s print 3.fsck -f /dev/sdc1 4.建gpt分区表 建分区 sudo parted /dev/sdc mklabel gpt unit s mkpart primary ext4 2048s -1s quit 5.调整分区大小 e2fsck -f /dev/sdc1 resize2fs /dev/sdc1 
    34 条回复    2018-07-09 22:49:08 +08:00
    Mountaincnc
        1
    Mountaincnc  
       2018-07-06 18:19:14 +08:00   1
    mbr 转 gpt 必然会丢数据
    nikymaco
        2
    nikymaco  
       2018-07-06 18:24:12 +08:00   1
    晕,格式化完就没确认一下存储空间,你这心够大啊!还能怎么着,再多买块硬盘或者借块空盘呗,把数据备份再格式化咯
    rrfeng
        3
    rrfeng  
       2018-07-06 18:25:03 +08:00 via Android   1
    分区表格式不一样无解...

    如果都是 GPT 搞错了还有的救
    ETiV
        4
    ETiV  
       2018-07-06 18:26:39 +08:00   1
    fdisk 进到磁盘的时候也会有红字提醒吧……
    tees
        5
    tees  
    OP
       2018-07-06 18:40:33 +08:00
    @Mountaincnc 忧伤啊
    @nikymaco 当时分区的时候,一路默认回车。。
    @nikymaco 失误啊。
    @ETiV 没红字提示。

    实在不可以就去借硬盘了
    2T 数据不知要复制多久。
    qiyuey
        6
    qiyuey  
       2018-07-06 19:05:02 +08:00 via Android   1
    diskgenius 支持 MBR 无损转 GPT?
    asilin
        7
    asilin  
       2018-07-06 19:24:21 +08:00   1
    可以实现无损转换的,在 Linux 下很简单:

    首先,MBR 只占用硬盘的前 512 个字节,而 GPT 需要占用前面 1MiB 个字节(1024 换算),且在硬盘的最后再备份一次分区表;

    所以,按照以下步骤即可:
    1. 将第一个分区及其文件系统缩小,以满足 GPT 的 1MiB 空间;
    2. 记住每一个分区的起始位置和结束位置
    3. 直接将硬盘的 MBR 及其分区表删除,然后使用 GPT 分区;
    4. 按照第 2 步记录的数据,依次建立所有的分区;

    这时,各个分区中的文件系统并没有被破坏,所以可以直接被系统识别挂载

    建议使用 parted 命令进行操作,操作过程中,将 unit 设置为 MiB,即 1024 进制转换。
    seawing
        8
    seawing  
       2018-07-06 19:34:45 +08:00 via Android   1
    @asilin 即便可行第一个分区也是救不回来啊
    seawing
        9
    seawing  
       2018-07-06 19:35:18 +08:00 via Android   1
    @asilin 即便可行第一个分区也是救不回来啊,而他只有一个分区…
    sxzzsf
        10
    sxzzsf  
       2018-07-06 19:40:55 +08:00   1
    看第一个分区的起始地址
    一般情况下, 前面是会留 1M 的空闲空间的.

    parted /dev/sdb unit s print

    WARNING: You are not superuser. Watch out for permissions.
    Disk /dev/sdb: 7814037168s
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags:

    Number Start End Size File system Name Flags
    1 2048s 2147493887s 2147491840s vmdpoolm0 lvm
    2 2147493888s 7814035119s 5666541232s storagem0 lvm
    ho121
        11
    ho121  
       2018-07-06 20:06:30 +08:00 via Android   1
    @tees 找台电脑,用网线传,如果两边都是千兆网,都是 ssd,可达百兆每秒
    lingll
        12
    lingll  
       2018-07-06 20:18:47 +08:00 via Android   1
    直接买个 2t 的硬盘,最稳妥的办法
    402645707
        13
    402645707  
       2018-07-06 20:22:11 +08:00   1
    windows 上面的 diskgenius 支持,不过得是专业版,拿 pe 启动然后找 mdr 转 gpt 就行,无损
    kokutou
        14
    kokutou  
       2018-07-06 20:22:53 +08:00   1
    这么麻烦?
    下个 pe,用 diskgenius 转就行了。。。

    如果磁盘头部和分区间空间不够。。。那还是得先把磁盘头部和分区间缩 1m 以上出来,不过 linux 文件系统好像没法从头部缩?
    feng32
        15
    feng32  
       2018-07-06 20:25:30 +08:00 via Android   1
    @lingll +1 买个移动硬盘,不折腾 100% 保证安全
    sephinh
        16
    sephinh  
       2018-07-06 20:26:30 +08:00 via Android   1
    只说一句,折腾前记得备份
    autoxbc
        17
    autoxbc  
       2018-07-06 21:03:36 +08:00   1
    不管用什么方法,第一步就是全盘备份,移动硬盘躲不过去
    ysc3839
        18
    ysc3839  
       2018-07-06 21:14:20 +08:00 via Android   1
    也许要看运气了,因为 GPT 分区表要放在硬盘头部和尾部,尾部的话有空闲空间没问题,但头部的话得看一开始创建分区时预留的空间够不够,如果不够的话那需要将分区往后移动。
    而就我个人知道的情况,把分区往后移动的工具都是闭源的,而且可能不支持 ext4 文件系统。
    ryd994
        19
    ryd994  
       2018-07-07 02:39:41 +08:00 via Android   2
    因为你用的是 8T 盘,理论上不难
    用 dd 把分区内容复制到 2T 后面去(稳妥起见可以更多)
    使用 GPT 分区,只有一个 2T 的分区
    把后面的数据复制回来,因为之前用的是 dd,确保使用相同的 offset 即可
    尝试挂载验证可用之后,延长分区的尾部到整个磁盘
    resize2fs 简单扩大文件系统
    ryd994
        20
    ryd994  
       2018-07-07 02:42:10 +08:00 via Android   1
    非常建议用个空白 U 盘实验一遍,熟悉一下 dd 的用法
    毕竟擦除硬盘最有效率的工具也是 dd
    plko345
        21
    plko345  
       2018-07-07 06:54:04 +08:00 via Android   1
    @ryd994 感觉具有可行性
    tees
        22
    tees  
    OP
       2018-07-07 08:54:46 +08:00


    (parted) print /dev/sdc
    Model: ATA ST4000VN008-2DR1 (scsi)
    Disk /dev/sdc: 7814037168s
    Sector size (logical/physical): 512B/4096B
    Partition Table: msdos
    Disk Flags:

    Number Start End Size Type File system Flags
    1 2048s 4294967294s 4294965247s primary ext4

    @asilin
    @sxzzsf
    @seawing

    起始是从 2048 开始,所以我这个还有救。
    cigarzh
        23
    cigarzh  
       2018-07-07 09:05:09 +08:00 via iPhone   1
    2T 备份要很长时间吗
    tees
        24
    tees  
    OP
       2018-07-07 10:29:28 +08:00
    @cigarzh 没多余的硬盘了。
    sxzzsf
        25
    sxzzsf  
       2018-07-07 11:35:18 +08:00   1
    可以无损扩容

    1. 记录下起始地址
    2. fsck -f /dev/sdc1
    3. parted /dev/sdc
    mklabel gpt
    unit s
    mkpart ...
    start 2048
    end -1
    4. resize2fs /dev/sdc1
    sxzzsf
        26
    sxzzsf  
       2018-07-07 11:38:29 +08:00   1
    @sxzzsf umount first
    sysnxw
        27
    sysnxw  
       2018-07-07 12:02:03 +08:00   1
    借硬盘吧,省事,也保险。
    Kurobac
        28
    Kurobac  
       2018-07-07 12:42:36 +08:00 via Android   1
    前几天用 kde 的分区管理器把分区往前移动了点,3T 的硬盘将近跑了 8 个小时…
    fjzjk
        29
    fjzjk  
       2018-07-07 14:51:53 +08:00   1
    傲梅分区助手和 diskgenius 都可以无损转换 gpt,几秒就搞定了。win 下这方面软件比其他系统强得多
    fjzjk
        30
    fjzjk  
       2018-07-07 14:53:20 +08:00   1
    转成 gpt 后你再爱用什么 linux 的软件来合并分区就都可以了。
    而且 diskgenius 新版和分区助手新版都支持 ext4 了我记得
    likuku
        31
    likuku  
       2018-07-07 18:15:56 +08:00   1
    再买块 4T 硬盘作备份呗,动作快的话,操作完成,数据恢复回去,接着把新硬盘安全擦除,最后把新硬盘退货。
    likuku
        32
    likuku  
       2018-07-07 18:17:26 +08:00   1
    不备份,总是有风险,觉得再加一块硬盘的成本远远高于现有数据的价值,那么就当我没说。
    qbqbqbqb
        33
    qbqbqbqb  
       2018-07-09 22:39:10 +08:00
    可以直接使用 gdisk 这个分区工具,本体是个操作方式类似 fdisk 的 GPT 分区工具,另外还内置 expert 和 recovery & transformation 两个模式,后者支持 GPT,MBR 分区表之间的转换。
    qbqbqbqb
        34
    qbqbqbqb  
       2018-07-09 22:49:08 +08:00
    如果确保分区头尾都有足够空间容纳分区表,直接 sudo gdisk /dev/sdc,然后 w 命令保存就行。另外还可以 r 命令进入 recovery & transformation 模式,可以满足一些奇葩的分区表转换需求。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6025 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 01:51 PVG 09:51 LAX 18:51 JFK 21:51
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86