V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tees
V2EX  ›  Linux

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

  •  
  •   tees · Jul 6, 2018 · 12237 views
    This topic created in 2863 days ago, the information mentioned may be changed or developed.
    刚开始用的时候,不知道大于 2T 的要用 GPT 分区表,直接用 fdisk 一路默认创建了一个分区。
    用到今天忽然提示空间不足了,一看才发现只有 2T。

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

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

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

    有不丢失数据的方法么?
    Supplement 1  ·  Jul 8, 2018

    我备份了数据。

    我使用了'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 replies    2018-07-09 22:49:08 +08:00
    Mountaincnc
        1
    Mountaincnc  
       Jul 6, 2018   ❤️ 1
    mbr 转 gpt 必然会丢数据
    nikymaco
        2
    nikymaco  
       Jul 6, 2018   ❤️ 1
    晕,格式化完就没确认一下存储空间,你这心够大啊!还能怎么着,再多买块硬盘或者借块空盘呗,把数据备份再格式化咯
    rrfeng
        3
    rrfeng  
       Jul 6, 2018 via Android   ❤️ 1
    分区表格式不一样无解...

    如果都是 GPT 搞错了还有的救
    ETiV
        4
    ETiV  
       Jul 6, 2018   ❤️ 1
    fdisk 进到磁盘的时候也会有红字提醒吧……
    tees
        5
    tees  
    OP
       Jul 6, 2018
    @Mountaincnc 忧伤啊
    @nikymaco 当时分区的时候,一路默认回车。。。
    @nikymaco 失误啊。
    @ETiV 没红字提示。

    实在不可以就去借硬盘了
    2T 数据不知要复制多久。
    qiyuey
        6
    qiyuey  
       Jul 6, 2018 via Android   ❤️ 1
    diskgenius 支持 MBR 无损转 GPT?
    asilin
        7
    asilin  
       Jul 6, 2018   ❤️ 1
    可以实现无损转换的,在 Linux 下很简单:

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

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

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

    建议使用 parted 命令进行操作,操作过程中,将 unit 设置为 MiB,即 1024 进制转换。
    seawing
        8
    seawing  
       Jul 6, 2018 via Android   ❤️ 1
    @asilin 即便可行第一个分区也是救不回来啊
    seawing
        9
    seawing  
       Jul 6, 2018 via Android   ❤️ 1
    @asilin 即便可行第一个分区也是救不回来啊,而他只有一个分区…
    sxzzsf
        10
    sxzzsf  
       Jul 6, 2018   ❤️ 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  
       Jul 6, 2018 via Android   ❤️ 1
    @tees 找台电脑,用网线传,如果两边都是千兆网,都是 ssd,可达百兆每秒
    lingll
        12
    lingll  
       Jul 6, 2018 via Android   ❤️ 1
    直接买个 2t 的硬盘,最稳妥的办法
    402645707
        13
    402645707  
       Jul 6, 2018   ❤️ 1
    windows 上面的 diskgenius 支持,不过得是专业版,拿 pe 启动然后找 mdr 转 gpt 就行,无损
    kokutou
        14
    kokutou  
       Jul 6, 2018   ❤️ 1
    这么麻烦?
    下个 pe,用 diskgenius 转就行了。。。

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


    (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  
       Jul 7, 2018 via iPhone   ❤️ 1
    2T 备份要很长时间吗
    tees
        24
    tees  
    OP
       Jul 7, 2018
    @cigarzh 没多余的硬盘了。
    sxzzsf
        25
    sxzzsf  
       Jul 7, 2018   ❤️ 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  
       Jul 7, 2018   ❤️ 1
    @sxzzsf umount first
    sysnxw
        27
    sysnxw  
       Jul 7, 2018   ❤️ 1
    借硬盘吧,省事,也保险。
    Kurobac
        28
    Kurobac  
       Jul 7, 2018 via Android   ❤️ 1
    前几天用 kde 的分区管理器把分区往前移动了点,3T 的硬盘将近跑了 8 个小时…
    fjzjk
        29
    fjzjk  
       Jul 7, 2018   ❤️ 1
    傲梅分区助手和 diskgenius 都可以无损转换 gpt,几秒就搞定了。win 下这方面软件比其他系统强得多
    fjzjk
        30
    fjzjk  
       Jul 7, 2018   ❤️ 1
    转成 gpt 后你再爱用什么 linux 的软件来合并分区就都可以了。
    而且 diskgenius 新版和分区助手新版都支持 ext4 了我记得
    likuku
        31
    likuku  
       Jul 7, 2018   ❤️ 1
    再买块 4T 硬盘作备份呗,动作快的话,操作完成,数据恢复回去,接着把新硬盘安全擦除,最后把新硬盘退货。
    likuku
        32
    likuku  
       Jul 7, 2018   ❤️ 1
    不备份,总是有风险,觉得再加一块硬盘的成本远远高于现有数据的价值,那么就当我没说。
    qbqbqbqb
        33
    qbqbqbqb  
       Jul 9, 2018
    可以直接使用 gdisk 这个分区工具,本体是个操作方式类似 fdisk 的 GPT 分区工具,另外还内置 expert 和 recovery & transformation 两个模式,后者支持 GPT,MBR 分区表之间的转换。
    qbqbqbqb
        34
    qbqbqbqb  
       Jul 9, 2018
    如果确保分区头尾都有足够空间容纳分区表,直接 sudo gdisk /dev/sdc,然后 w 命令保存就行。另外还可以 r 命令进入 recovery & transformation 模式,可以满足一些奇葩的分区表转换需求。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   958 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 19:55 · PVG 03:55 · LAX 12:55 · JFK 15:55
    ♥ Do have faith in what you're doing.