请稍候...
  • 企业级 VPS主机
  • Windows VPS 主机
  • Unmanaged VPS 主机
  • 通配符证书,部署全网SSL证书必备神器
  • 高速稳定独立主机High quality stable server

Linux硬盘分区格式化命令

发布时间:2016-06-02 12:57:59 来源: 51idc

硬盘有 disk size 和 partition size 两个概念。

如果您的硬盘是第一次加载的硬盘,就需要进行分区、格式化,和 mount 操作。 如果是老硬盘,且没有扩容,就不用再分区、格式化了,直接 mount 就行。

警告 如果硬盘容量大于1TB,建议使用 parted 工具进行分区。

第一步我们先为磁盘分区

  • 使用 fdisk 分区

    通过 fdisk -l 命令查看挂载的硬盘,假设为 /dev/vdc

    # fdisk -l  ...  Disk /dev/vdc: 10.7 GB, 10737418240 bytes  64 heads, 32 sectors/track, 10240 cylinders, total 20971520 sectors  Units = sectors of 1 * 512 = 512 bytes  Sector size (logical/physical): 512 bytes / 512 bytes  I/O size (minimum/optimal): 512 bytes / 512 bytes  Disk identifier: 0x00000000    Disk /dev/vdc doesn't contain a valid partition table

    对硬盘进行分区:

    # fdisk /dev/vdc

    然后根据提示,依次输入 n, p, 1, 以及两次回车,然后是 wq,完成保存。 这样再次通过 fdisk -l 查看时,您可以看到新建的分区/dev/vdc1

    # fdisk -l  ...  Disk /dev/vdc: 10.7 GB, 10737418240 bytes  64 heads, 32 sectors/track, 10240 cylinders, total 20971520 sectors  Units = sectors of 1 * 512 = 512 bytes  Sector size (logical/physical): 512 bytes / 512 bytes  I/O size (minimum/optimal): 512 bytes / 512 bytes  Disk identifier: 0x17adb4cb    Device Boot      Start         End      Blocks   Id  System  /dev/vdc1            2048    20971519    10484736   83  Linux

  • 使用 parted 分区

    通过 parted -l 命令查看新挂载的硬盘,假设为 /dev/vdc

    # parted -l  ...    错误: /dev/vdc: unrecognised disk label

    对硬盘进行分区:

    # parted /dev/vdc

    然后创建新分区

      (parted) mklabel gpt  (parted) mkpart primary 1049K -1  (parted) quit

    这时再查看硬盘信息时会看到 /dev/vdc1

    # parted -l  ...  Model: QEMU QEMU HARDDISK (scsi)  Disk /dev/vdc: 10.7GB  Sector size (logical/physical): 512B/512B  Partition Table: gpt    Number  Start   End     Size    File system  Name     标志   1      1049kB  10.7GB  10.7GB               primary

分区后要进行格式化,例如格式化为 ext4 格式

      # mkfs -t ext4 /dev/vdc1

最后挂载硬盘:

      # mkdir -p /mnt/vdc && mount -t ext4 /dev/vdc1 /mnt/vdc

      警告 为了防止宿云服务器在突然断电时可能对数据带来的风险,如果文件系统是ext3,则需要在mount的时候显式的指定”barrier=1”选项,例如”mount -t ext3 -o barrier=1 /dev/vdc1 /mnt/point”

2. 如何自动挂载?

如果您需要在系统启动时自动挂载,不要在 /etc/fstab 直接指定 /dev/vdc1 这样的写法, 因为在云中设备的顺序编码在关机、开机过程中可能发生改变,推荐使用 UUID 或者 LABEL 的方式来指定:

如果使用 UUID,则先通过 “blkid /dev/vdc1” 命令,得到磁盘的 UUID,例如:

/dev/vdc1: UUID="185dc58b-3f12-4e90-952e-7acfa3e0b6fb" TYPE="ext4"

然后在 /etc/fstab 里面,加入:

UUID=185dc58b-3f12-4e90-952e-7acfa3e0b6fb /mnt/mydisk ext4 defaults 0 2

如果使用 LABEL,则在格式化硬盘时,需要指定 LABEL,例如:

mkfs -t ext4 -L MY_DISK_LABEL /dev/vdc1

然后在 /etc/fstab 里面,加入:

LABEL=MY_DISK_LABEL /mnt/mydisk ext4 defaults 0 2

如何对硬盘进行扩容?

硬盘有 disk size 和 partition size 两个概念。通过云计算控制台或 API 扩容只是扩大了硬盘的物理空间,即 disk size 。 在加载到云服务器后还需要手动扩大 partition size。

有很多工具可以做到调整分区大小、而不损坏数据,比如 windows 上有 pqmagic, Linux 上也有这样的工具,如 parted,fdisk,图形界面下可以用 gparted, 命令行下,得看您的分区是什么文件系统,如果是 ext2/ext3/ext4 的话,就用 resize2fs 来扩容。

警告 如果硬盘容量大于1TB,建议使用 parted 工具进行分区。

下面以 CentOS Linux 为例,假设云服务器上已挂载一块 10GB 的硬盘,分区为 “/dev/vdc1” (有些磁盘的分区可能是 /dev/vd*),文件系统格式为 “ext3”,挂载位置是 “/mnt/vdc”,现在需要扩容到 20GB 。步骤如下 (需要 root 权限):

先在云服务器内部卸载硬盘:

umount /mnt/vdc

之后在控制台将硬盘从云服务器解绑,将硬盘进行扩容后再重新绑定到云服务器。

下面开始扩大分区:


  • 使用 fdisk 扩大分区

    通过 “fdisk -l” 查看硬盘分区号,假设还是 “/dev/vdc1”,

    # fdisk -l  ...  Disk /dev/vdc: 21.5 GB, 21474836480 bytes  64 heads, 32 sectors/track, 20480 cylinders  Units = cylinders of 2048 * 512 = 1048576 bytes  Sector size (logical/physical): 512 bytes / 512 bytes  I/O size (minimum/optimal): 512 bytes / 512 bytes  Disk identifier: 0x56250342       Device Boot      Start         End      Blocks   Id  System  /dev/vdc1            1024       10240     9438208   83  Linux

    这时可以看到 Disk /dev/vdc 的物理容量已是 20GB,不过 vdc1 还是原来的大小, 磁柱是从 1024 到 10240。

    警告 其中的起始磁柱位置(Start 对应的数字,此例中是 1024)要牢记, 后面重新分区时要用到。

    我们开始对 vdc1 重新分区(不会损失数据):

    # fdisk /dev/vdc

    输入 d 删除 vdc1 分区。之后依次输入 n, p, 1 建立新分区。在输入新分区起始磁柱(First cylinder)时,依然选择之前的数字 1024 ,这样可以防止数据丢失。设定好后输入 wq 使分区表生效。


  • 使用 parted 扩大分区

    通过 “parted -l” 查看硬盘分区号,假设还是 “/dev/vdc1”,

    # parted -l  ...  Model: QEMU QEMU HARDDISK (scsi)  Disk /dev/vdc: 21.5GB  Sector size (logical/physical): 512B/512B  Partition Table: gpt    Number  Start   End     Size    File system  Name     标志   1      1049kB  10.7GB  10.7GB  ext3         primary

    这时可以看到 Disk /dev/vdc 的物理容量已扩大,不过 vdc1 还是原来的大小, 磁柱是从 1049k 到 10.7GB。

    警告 其中的起始位置(Start 对应的值,此例中是 1049k)要牢记, 后面重新分区时要用到。

    我们开始对 vdc1 重新分区(不会损失数据):

    # parted /dev/vdc

    先删除 vdc1 分区

    (parted) rm 1

    建立新分区。起始位置(Start)依然选择之前的值: 1049k

    (parted) mkpart primary 1049k -1  (parted) quit

分区扩大后我们还要通过 resize2fs 调整 vdc1 的文件系统大小

e2fsck -f /dev/vdc1  resize2fs /dev/vdc1

最后重新挂载硬盘:

mount -t ext3 -o barrier=1 /dev/vdc1 /mnt/vdc

这时通过 “df -h” 指令即可查看扩容后的分区大小

为何我扩容了云硬盘,分区容量却没有增加?

在云控制台中扩大了硬盘(购买更多硬盘空间),对于系统来说只是扩大了单块硬盘的容量,并没有扩大磁盘现在的分区。所以无论是在Windows或Linux下,都需要进入系统后对分区进行扩大,才能最终扩容您分区的可使用容量。

上一页1下一页
【责任编辑:亚狐科技 (Top) 返回页面顶端