A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: fdisk: command not found #Debian apt-get install fdisk #Ubuntu apt-get install fdisk #Alpine apk add util-linux #Arch Linux pacman -S util-linux #Kali Linux apt-get install fdisk #CentOS yum install util-linux #Fedora dnf install util-linux #OS X brew install util-linux #Raspbian apt-get install util-linux #Docker docker run cmd.cat/fdisk fdisk
fdisk 命令是一个菜单驱动程序,用于创建和操作分区表。它了解 DOS
类型的分区表和 BSD
类型或 SUN
类型的磁盘标签。
fdisk 无法理解 GPT
(GUID 分区表),因此它不适用于大型分区。在这些情况下,请使用更高级的 GNU Parted
。
fdisk 不使用 DOS
兼容模式,默认情况下将柱面作为显示单位。可以使用 -c = dos -u = cylinders
命令行选项启用旧的 DOS 行为。
硬盘可以分为一个或多个逻辑磁盘,称为分区。该分区记录在分区表中,该分区表位于磁盘的扇区 0 中。在 BSD 世界中,人们谈论“磁盘片”和“磁盘标签”。
Linux 需要至少一个分区,专门用于其根文件系统。它可以使用交换文件和 / 或交换分区,但后者效率更高。因此,通常人们会想要第二个 Linux 分区专门用作交换分区。在与 Intel 兼容的硬件上,引导系统的 BIOS
通常只能访问磁盘的前 1024 个柱面。因此,拥有大磁盘的人通常会创建第三个分区,该分区通常大几个 MB,通常挂载在 /boot
上,以存储内核映像和启动时所需的一些辅助文件,以确保这些内容可供访问 BIOS
。使用安全性,简化管理和备份或测试的原因可能要使用超过最小数量的分区。
disk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device fdisk -l [-u] [device...] fdisk -s partition... fdisk -v fdisk -h
-b <大小> 扇区大小(512、1024、2048或4096) -c[=<模式>] 兼容模式:“dos”或“nondos”(默认) -h 打印此帮助文本 -u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认) -v 打印程序版本 -C <数字> 指定柱面数 -H <数字> 指定磁头数 -S <数字> 指定每个磁道的扇区数
设备文件:指定要进行分区或者显示分区的硬盘设备文件。
首先选择要进行操作的磁盘:
[root@localhost ~]$ fdisk /dev/sdb
输入 m 列出可以执行的命令:
command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
输入 p
列出磁盘目前的分区情况:
Command (m for help): p Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 1 8001 8e Linux LVM /dev/sdb2 2 26 200812+ 83 Linux
输入 d
然后选择分区,删除现有分区:
Command (m for help): d Partition number (1-4): 1 Command (m for help): d Selected partition 2
查看分区情况,确认分区已经删除:
Command (m for help): print Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help):
输入 n
建立新的磁盘分区,首先建立两个主磁盘分区:
Command (m for help): n Command action e extended p primary partition (1-4) p //建立主分区 Partition number (1-4): 1 //分区号 First cylinder (1-391, default 1): //分区起始位置 Using default value 1 last cylinder or +size or +sizeM or +sizeK (1-391, default 391): 100 //分区结束位置,单位为扇区 Command (m for help): n //再建立一个分区 Command action e extended p primary partition (1-4) p Partition number (1-4): 2 //分区号为2 First cylinder (101-391, default 101): Using default value 101 Last cylinder or +size or +sizeM or +sizeK (101-391, default 391): +200M //分区结束位置,单位为M
确认分区建立成功:
Command (m for help): p Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 100 803218+ 83 Linux /dev/sdb2 101 125 200812+ 83 Linux
再建立一个逻辑分区:
Command (m for help): n Command action e extended p primary partition (1-4) e //选择扩展分区 Partition number (1-4): 3 First cylinder (126-391, default 126): Using default value 126 Last cylinder or +size or +sizeM or +sizeK (126-391, default 391): Using default value 391
确认扩展分区建立成功:
Command (m for help): p Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 100 803218+ 83 Linux /dev/sdb2 101 125 200812+ 83 Linux /dev/sdb3 126 391 2136645 5 Extended
在扩展分区上建立两个逻辑分区:
Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l //选择逻辑分区 First cylinder (126-391, default 126): Using default value 126 Last cylinder or +size or +sizeM or +sizeK (126-391, default 391): +400M Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First cylinder (176-391, default 176): Using default value 176 Last cylinder or +size or +sizeM or +sizeK (176-391, default 391): Using default value 391
确认逻辑分区建立成功:
Command (m for help): p Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 100 803218+ 83 Linux /dev/sdb2 101 125 200812+ 83 Linux /dev/sdb3 126 391 2136645 5 Extended /dev/sdb5 126 175 401593+ 83 Linux /dev/sdb6 176 391 1734988+ 83 Linux Command (m for help):
从上面的结果我们可以看到,在硬 sdb 我们建立了 2 个主分区(sdb1,sdb2),1 个扩展分区(sdb3),2 个逻辑分区(sdb5,sdb6)
注意:主分区和扩展分区的磁盘号位 1-4
,也就是说最多有4个主分区或者扩展分区,逻辑分区开始的磁盘号为 5,因此在这个实验中试没有 sdb4
的。
最后对分区操作进行保存:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
建立好分区之后我们还需要对分区进行格式化才能在系统中使用磁盘。
在 sdb1 上建立 ext2 分区:
[root@localhost ~]$ mkfs.ext2 /dev/sdb1 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 100576 inodes, 200804 blocks 10040 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=209715200 7 block groups 32768 blocks per group, 32768 fragments per group 14368 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
在 sdb6 上建立 ext3 分区:
[root@localhost ~]$ mkfs.ext3 /dev/sdb6 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 217280 inodes, 433747 blocks 21687 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=444596224 14 block groups 32768 blocks per group, 32768 fragments per group 15520 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost ~]#
建立两个目录 /oracle
和 /web
,将新建好的两个分区挂载到系统:
[root@localhost ~]$ mkdir /oracle [root@localhost ~]$ mkdir /web [root@localhost ~]$ mount /dev/sdb1 /oracle [root@localhost ~]$ mount /dev/sdb6 /web 查看分区挂载情况: [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 6.7G 2.8G 3.6G 44% / /dev/sda1 99M 12M 82M 13% /boot tmpfs 125M 0 125M 0% /dev/shm /dev/sdb1 773M 808K 733M 1% /oracle /dev/sdb6 1.7G 35M 1.6G 3% /web
如果需要每次开机自动挂载则需要修改 /etc/fstab
文件,加入两行配置:
[root@localhost ~]# vim /etc/fstab /dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 /dev/sdb1 /oracle ext2 defaults 0 0 /dev/sdb6 /web ext3 defaults 0 0