一直觉得Linux的分区操作很高大上,之前在物理机上装的Linux,所以不敢随便乱来,今天重回Windows,下面利用Windows上的Linux虚拟机实际操作一次磁盘分区,要求:1G的硬盘分成2个200M的主分区(不是root分区),1个600M的扩展分区,扩展分区下面2个300M的逻辑分区。
(1)在虚拟机启动之前,编辑此虚拟机,添加一块1G的硬盘(相当于添加了一快物理硬盘),然后启动虚拟机。
(2)执行fdisk -l,查看分区情况:
第二块硬盘/dev/sdb就是我刚才添加的物理硬盘。
(3)分区配置与保存。对/dev/sdb硬盘进行分区设置:fdisk /dev/sdb
输入m,查看所有可执行的命令参数,下面新建一个主分区:
输入n,新建一个磁盘分区,然后会看到有两个选项,一个是扩展分区,一个是主分区(主分区最多有4个),输入p,然后选择主分区的编号,由于是硬盘的第一块主分区,因此选择1,然后选择起始柱面编号,一般默认(第一块从1开始),然后就是分区大小选择,默认情况下是通过柱面来表示,而且是整块硬盘,实际情况下,我们会根据提示使用具体的大小值,比如+200M,这样我们就 配置好第一个分区了,用同样的方法,配置好第二个分区:
下面就是新建扩展分区了,操作基本和上面的类似,只是参数的选择不一样:
扩展分区我们一般会作为最后一个分区,因此分区编号为4,扩展分区是最后建立的分区,因此磁盘的剩余空间全部都给扩展分区,不用输入任何值。下面就需要在扩展分区上建立逻辑分区:
由于扩展分区已经建立,因此输入n新建分区时,出现的提示就不会有扩展分区,而是变成逻辑分区,同理,新建下一个逻辑分区,分区分好后,执行p,查看分区情况:
其中前两个是主分区,第三个是扩展分区,后两个是扩展分区下的逻辑分区。注意,此时不能直接输入q退出,否则会前功尽弃,因为上面仅仅是对分区进行了配置,并没有保存,所以,下一步要执行的 保存退出:
(4)使分区表生效。 如果是在一块硬盘上做分区操作,那么在操作完成后是需要重启系统的,以便让分区表生效。但是如果是在一块新加的硬盘上做分区操作,那么我们是不用重启系统的,直接让系统重读分区表:partprobe /dev/sdb #后面最好接具体的硬盘信息,否则会出现提示警告信息,甚至在接下来的分区格式化中报错:
(5)格式化分区。因为我们的分区操作是再/dev/sda磁盘上操作的,如果不指定具体的磁盘,那么系统就会读取所有硬盘的分区表,但是我们的/dev/sda正在使用中,因此系统会提示设备忙,需重启。最后一个Error是是虚拟光驱/dev/sr0导致了分区表的递归。(参考:http://www.it165.net/os/html/201408/8982.html)
接下来就需要格式化刚才新建的分区:
mkfs -t ext3命令等价于mkfs.ext3(注意,扩展分区不用格式化,只需要格式化其下的逻辑分区),最后可以执行tune2fs来配置系统自检,也可以不配置,这里就不配置了。
(6)分区挂载。到目前为止,我们的分区就已经分好了,但是还不能使用,因为我们还没有挂载,下面就进行分区的挂载:
挂载后,我们的分区就可以使用了,但是还有个问题,就是当我们重启系统后,刚才的挂载就会消失,这是因为系统启动的时候会读取/etc/fstab里面的信息,这里面就记录了磁盘分区挂载的相关信息,系统启动的时候会按照上面的配置信息进行挂载,因此之前的挂载在系统重启后就会消失,因此那仅仅是临时挂载。下面就配置/etc/fstab文件,加入一行:/dev/sdb1 /data ext3 defaults 0 0,defaults表示挂载选项,可以先缺省,后面两个数字表示是否需要备份和开机检查,一般只有系统根目录才需要设置,否则都是0。最后mount -a,使所有在/etc/fstab中提到配置的挂载都生效。同样解除挂载也存在相似的问题,如果仅仅使用umount /data(或则 umount /dev/sdb1),那么也仅仅是临时的解除挂载,如果系统从启,还是会根据配置文件将制定的分区挂载到制定的目录。
补充:对于2T以下硬盘(或者RAID后)的分区,我们使用fdisk,但是对于2T以上硬盘的分区,我们使用parted。parted是一个分区管理工具,它比fdisk更加灵活,功能也更丰富,同时还支持(GUID Partition Table),这在IA64平台上管理磁盘时非常有用,它同时支持交互模式和非交互模式,它除了能够进行分区的添加,删除等常见操作外,还可以移动分区,制作文件系统,调整文件系统大小,复制文件等。