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下一页 |
版权所有@转载请注明原文地址