全国业务电话:
4.3 磁盘分区管理
4.3 磁盘分区管理
 
  警告:改变系统的硬盘分区是件非常危险的事情,即使对于经验非常丰富的管理员,我们仍建议您在改变磁盘分区前先进行磁盘的数据备份。
 
4.3.1 Parted 工具
 
  利用 parted 程序可以方便地进行磁盘分区的管理和定制,如查看现存的分区表、改变分区的大小、删除分区或创建新分区。

  在 Shell 提示符下以超级用户身份键入如下命令(/dev/sdb 表示要定制的设备名)。
 
    #parted /dev/sdb  
 
  启动 parted 后,在(parted)提示下键入 help 将显示可用命令的列表。下表列出的是用户最常用的 parted 命令。
 
表 4-2 parted 命令
 

 
  提示:要新建、删除分区或重新划分分区大小,分区所在设备不能被正在使用,即分区不能被挂载,且交换空间不能被启用。如果分区中不包括正在被使用的文件,可以用 umount 命令来卸载分区,使用 swapoff 命令来关闭交换分区。
 
4.3.1.1 查看分区表
 
  启动 parted 后,键入 print 命令来查看分区表,屏幕输入信息如下:


图 4-2 查看分区表信息
 
  第一行显示了磁盘的大小,第二行显示磁盘标签类型,后面部分为分区表,其中:
 
  Number 域表示分区设备名中的数字,例如数字 1 代表/dev/sda1;Start 和 End 分别表示对应分区在硬盘上的起止位置,以 MB 为单位;Type 代表分区类型,可以是 primary 、extended 和 logical 之一;Filesystem 是文件系统的类型,可以是 ext4、ext3、ext2、FAT、Linux -swap 等等;Flags 域列出了分区被设置的标准,可用的标志有:boot、root、swap、hidden、raid、lvm 等。
 
  提示:要不重新启动 parted 来选择不同的设备,使用 select 命令,再紧跟设备名,如/dev/hdb。然后,您便可以查看或配置它的分区表。
 
4.3.1.2 创建分区
 
  如果我们要在/dev/sdb 上创建一个新分区,那么输入以下命令启动 parted:
 
    #parted /dev/sdb  
 
  然后用 print 命令查看当前的分区表,确认磁盘上是否有足够的空闲空间可用于新分区。
 
  提示:不要试图在正在使用的视图上创建新分区。
 
  根据分区表决定新分区的起止点和分区类型,每个硬盘上只能有四个主分区,如果想拥有四个以上的分区,则必须先划出一个扩展分区,再在扩展分区内创建多个逻辑分区。

  例如,要在/dev/sda1 上从 18000MB 到 21000 MB创建一个文件系统为 ext2 的主分区,键入以下命令:
 
    #mkpart primary ext2 18000 21000  
 
  如果使用 mkpartfs 命令,分区创建后文件系统也会被创建。只要一按下<Enter>键,对分区的改变就会生效,因此在执行前请仔细检查一下命令。
 
  创建了分区后,使用 print 命令来确认所建分区已加入分区表中,并具有正确的分区类型、文件系统类型和大小。记住新分区的设备名中的数字以方便后续操作。
 
  使用 mkpart 划分的分区还没有格式化,用下面的命令为分区创建文件系统:
 
    #mkfs -t ext4 /dev/sdb3  
 
  接下来,可以为新分区注明标签、在目录树中为它创建加载点,使用 mount 命令加载并使用它。还可以把它的信息添加到/etc/fstab 文件中。
 
  提示:parted 尚不支持创建 ext3、ext4 文件系统。因此,如果想创建一个 ext3、ext4 文件系统,先使用 part 划分分区,然后使用 mkfs 来创建。
 
4.3.1.3 删除分区
 
  如果要删除/dev/sdb 上的一个分区,首先输入如下命令启动 parted:
 
    #parted /dev/sdb  
 
  然后用 print 命令查看当前的分区表,确认要删除的分区。
 
  使用 rm 来删除分区,例如,要删除分区设备名为 sdb3 ,则在(parted)提示符下键入:
 
   (parted)rm 3  
 
  只要一按下<Enter>键,分区就会被删除,请在命令执行前仔细检查一下!
 
  分区删除后,使用 print 命令可以看到分区已经被从分区表删除。最后要把它从/etc/fstab 文件中删除,找到与被删除的分区相应的行,从文件中删除它。
 
  提示:不要视图删除正在使用的设备上的分区。
 
4.3.2 Fdisk 工具
 
  fdisk 也是 CGSL 系统所常用的磁盘分区管理工具,以下介绍 fdisk 的基本用法。

4.3.2.1 查看分区情况
 
  使用 fdsik -l filesystem 命令来查看分区情况,例如以下,以 root 用户执行:

    #fdisk -l /dev/sdb  
 
    Disk /dev/sdb: 2147 MB, 2147483648 bytes  
 
    255 heads, 63 sectors/track, 261 cylinders  
 
    Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Sector size (logical/physical): 512 bytes / 512 bytes  
 
    I/O size (minimum/optimal): 512 bytes / 512 bytes  
 
    Disk identifier: 0x00000000  
 
    Disk /dev/sdb doesn't contain a valid partition table  
 

4.3.2.2 创建分区
 
  对磁盘进行操作,以 root 用户执行:fdisk filesystem,例如:
 
 
 
    #fdisk /dev/sdb  
 
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel  
 
    Building a new DOS disklabel with disk identifier 0x2dfa2374.  
 
    Changes will remain in memory only, until you decide to write them.  
 
    After that, of course, the previous content won't be recoverable.  
 
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)  
 
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').  
 
    Command (m for help): n                                //使用命令n新建分区  
 
    Command action  
 
           e      extended  
 
           p      primary partition (1-4)  
 
           p                                                                   //按照提示输入p新建一个主分区  
 
    Partition number (1-4): 1                                 //选择分区号  
 
    First cylinder (1-261, default 1):  
 
    Using default value 1  
 
    Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +1G                      //分区大小  
 
    Command (m for help): w                                //写入分区结果并退出  
 
    The partition table has been altered!  
 
    Calling ioctl() to re-read partition table.  
 
    Syncing disks.  

4.3.2.3 删除分区

    #fdisk /dev/sdb  
 
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').  
 
    Command (m for help): p                                                      //查看现在的分区情况  
 
    Disk /dev/sdb: 2147 MB, 2147483648 bytes  
 
    255 heads, 63 sectors/track, 261 cylinders  
 
    Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Sector size (logical/physical): 512 bytes / 512 bytes  
 
    I/O size (minimum/optimal): 512 bytes / 512 bytes  
 
    Disk identifier: 0x2dfa2374  
 
    Device Boot      Start         End      Blocks        Id  System  
 
    /dev/sdb1                1          132     1060258+  83  Linux  
 
    /dev/sdb2           133          197      522112+    83  Linux  
 
    Command (m for help): d                                                     //删除分区  
 
    Partition number (1-4): 2                                                       //选择分区号  
 
    Command (m for help): p                                                     //再次查看分区情况,是否已删除  
 
    Disk /dev/sdb: 2147 MB, 2147483648 bytes  
 
    255 heads, 63 sectors/track, 261 cylinders  
 
    Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Sector size (logical/physical): 512 bytes / 512 bytes  
 
    I/O size (minimum/optimal): 512 bytes / 512 bytes  
 
    Disk identifier: 0x2dfa2374  
 
    Device Boot      Start         End      Blocks   Id  System  
 
    /dev/sdb1               1         132     1060258+  83  Linux  
 
    Command (m for help): w                                                      //写入分区结果并退出  
 
    The partition table has been altered!  
 
    Calling ioctl() to re-read partition table.  
 
    Syncing disks.  
 

 

  • 操作系统微信公众号

  • CPI微信公众号

© 2004-2020 广东中兴新支点技术有限公司  版权所有  (www.gd-linux.com)  粤ICP备15061780号-2

新支点OS业务:

QQ客服