使用 Linux fdisk 来创建 Linux分区(转帖)

(转自:使用 Linux fdisk 来创建 Linux分区:http://slack.linuxsir.org/main/?q=node/180)

在这个时候,你应该在你的硬盘上有大量可用作 Slackware 分区的未分区空间。

现在你已经准备好了创建你的 Linux 根分区。你可以用 Linux 版的 fdisk 来做到这一点。

为了给一个硬盘分区,你得在你开始运行 fdisk 的时候指定设备的名称。比如:

fdisk /dev/hda (对第一个 IDE 硬盘驱动器重新分区)

fdisk /dev/hdb (对第二个 IDE 硬盘驱动器重新分区)

fdisk /dev/sda (对第一个 SCSI 硬盘驱动器重新分区)

fdisk /dev/sdb (对第二个 SCSI 硬盘驱动器重新分区)

[注:如果你喜欢,也可以尝试一个叫做 'cfdisk' 的菜单操作的 Linux fdisk 版本。]

你启动了 fdisk 之后,它会显示一个命令提示符。首先用 'p' 命令查看你现有的分区表:

Command (m for help): p

Disk /dev/sda: 255 heads, 63 sectors, 1024 cylinders

Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 702 5638783+ 4f Win95 FAT32 (LBA)

在这里我们可以看到在硬盘上已经有了一个 DOS 分区,从第一个柱面开始扩展到702柱面。因为整个硬盘有1024个柱面,所以703 – 1024的范围是空闲的,可以用来安装 Linux。

如果 FAT32 分区已经使用了整个硬盘,那么除了把它整个地删除(这会破坏分区),或者返回以使用某些像 GNU parted 或者 Partition Magic 之类的分区调整工具来为安装创建一些空闲空间之外,你别无选择。

接下来,你可以用 'n' 命令来创建一个主分区。这将是你的 Linux 根分区。

Command (m for help): n

Command action

e extended

p primary partition (1-4)

你可以键入 'p' 来设定一个主分区。

Partition number (1-4): 2

在这里,键入 "2" 是因为 DOS 已经使用了第一个主分区。Fdisk 首先会问你分区开始处的柱面。Fdisk 知道你最后一个分区是到哪里为止并且会建议你从硬盘上第一个可用的柱面开始作为新的分区。向前并接受这个值。然后,fdisk 需要知道分区的大小。你有两个办法可以指定它,或者输入结束处的柱面,或者输入一个大小值。在这里,我们输入一个大小值。为了做到这一点,你得输入 +sizeM ──在这里,+2300M。这里是输入这些数据之后的屏幕显示:

First cylinder (703-1024): 703

Last cylinder or +size or +sizeM or +sizeK (33-92): +2300M

你已经创建了一个2300 MB 大小的 Linux 主分区。接下来,你要设定一个 Linux 交换分区。你可以用同样的方法来做。首先,键入 'n' 来设定一个主分区:

Command (m for help): n

Command action

e extended

p primary partition (1-4)

键入 "p" 来选择一个主分区。主分区1已经被 DOS 占用,主分区2也已经被 Linux 占用,所以你可以输入 "3" 作为新分区号:

Partition number (1-4): 3

由于这是我们要在硬盘上设定的最后一个分区,所以要这一次手动指定最后一个柱面。以下是这个条目:

First cylinder (999-1024): 999

Last cylinder or +size or +sizeM or +sizeK (999-1024): 1024

现在我们要把分区类型设置为82,作为 Linux 交换分区。我们最后都要设置分区类型除非指定让 Linux fdisk 自动把新分区的类型设置为83(Linux)。用 "t" 命令来设置分区类型:

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): 82

现在你要把更新过的分区表信息保存到你的硬盘上。再次使用 "p" 命令查看结果并确认你对此满意:

Command (m for help): p

Disk /dev/sda: 255 heads, 63 sectors, 92 cylinders

Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 702 5638783+ 4f Win95 FAT32 (LBA)

/dev/sda2 703 999 2385638 83 Linux

/dev/sda3 999 1024 200811 82 Linux swap

这看上去没错了,那么我们就用 "w" 命令把分区表信息保存下来。如果你想不更新分区表就退出(如果你犯了一个错误),那你可以用 "q" 命令,从而不保存任何信息直接退出。

当你用 "w" 命令退出 fdisk 时,fdisk 建议你重新启动机器以确保改动生效。如果你没有创建扩展分区,那就可以继续并且在没有重启的情况下运行 setup。

注:有时候 fdisk 会给你一个类似于 "This drive has more than 1024 cylinders" 的信息并警告在 DOS 下使用这些分区可能产生的问题。这是因为 MS-DOS 受到只能使用硬盘上前面的1024柱面的限制。以前,LILO 使用标准 BIOS 惯例来读取扇区,所以这也是 LILO 的一个限制。幸运的是近来的 LILO 版本采用 LBA32 方法读取扇区,所以不再有这一限制了。如果你看到 fdisk 的警告信息,你可以放心地忽略它。

2 thoughts on “使用 Linux fdisk 来创建 Linux分区(转帖)”

  1. 同windows一样,先分区,然后把分区格式化才能使用。

    例如,格式化成ext3格式:mkfs -t ext3 /dev/hda1 或者 mkfs -j /dev/hda1

    但是,我发现在dos分区上仍然可以用上面的命令格式化成ext3文件系统。

    我不知道在dos分区上和在linux分区上格式化成linux的文件系统有什么区别没有?

  2. 如果在用mkfs命令格式化一个分区需要为分区添加卷标,可以这样:

    在linux分区下,如:mkfs -t ext3 -L /boot /dev/hda1 (加 -L /boot即是把这个分区的卷标设为:/boot);

    在DOS分区下,如:mkfs -t msdos -n PWIN97 /dev/hda2 (加 -n PWIN97即是把这个分区的卷标设为:PWIN97);另,据我的经验,这时一定把DOS分区下的卷标全部大写,否则在DOS版的fdisk程序下删除分区时验证卷标名会通不过;而且,我发现,linux下用mkfs格式化dos分区可以说是一瞬间就完成了(而且在dos下面和windows下面都可以正常使用),而在dos下用format命令有时格式化一个盘可能要超过10分钟,不知道它们之间有什么区别没有?

Comments are closed.