这篇博文主要总结了Linux磁盘的一些操作,主要是硬盘的加载,分区(MBR分区和GPT分区),分区的挂载,以及swap分区的加载设置。
基础命令
回顾磁盘分区时的注意事项:
当硬盘空间消耗殆尽时怎么办?
比较好的做法应该是:在保留原硬盘的基础上,给服务器添加新的硬盘。
为虚拟机添加硬盘
[root@joe dev]#fdisk /dev/sdb//进入分区模式Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x9ce83f46.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):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 //修改分区的系统ID u change display/entry units v verify the partition table w write table to disk and exit //写分区表并退出 x extra functionality (experts only)Command (m for help): nCommand action e extended //扩展分区 p primary partition (1-4)//主分区pPartition number (1-4):1First cylinder (1-2610, default 1): //扇区的范围(1-2610),默认开始1,直接回车则使用默认数值Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 500MCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux //分配好的主分区1//添加第二个分区Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): Value out of range.Partition number (1-4): 2First cylinder (501-2610, default 501): Using default value 501Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): 500MValue out of range.Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux/dev/sdb2 501 2610 16948575 83 Linux //第二个分区//由于分配不合适主观意愿,想删除分区Command (m for help): dPartition number (1-4):2//分区编号Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux //第二个分区已经删除Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4):2First cylinder (501-2610, default 501): Using default value 501Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): 1000Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux/dev/sdb2 501 1000 4016250 83 LinuxCommand (m for help): nCommand action e extended p primary partition (1-4)e //建立扩展分区Partition number (1-4):3First cylinder (1001-2610, default 1001): Using default value 1001Last cylinder, +cylinders or +size{K,M,G} (1001-2610, default 2610): Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux/dev/sdb2 501 1000 4016250 83 Linux/dev/sdb3 1001 2610 12932325 5 ExtendedCommand (m for help): nCommand action l logical (5 or over)//此时扩展分区e没有了,说明MBR只能有一个扩展分区,接下来是逻辑分区 p primary partition (1-4)lFirst cylinder (1001-2610, default 1001): Using default value 1001Last cylinder, +cylinders or +size{K,M,G} (1001-2610, default 2610): 1500Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux/dev/sdb2 501 1000 4016250 83 Linux/dev/sdb3 1001 2610 12932325 5 Extended/dev/sdb5 1001 1500 4016218+ 83 Linux //逻辑分区是从5开始的,1-4只能是主分区和扩展分区的编号Command (m for help): nCommand action l logical (5 or over) p primary partition (1-4)lFirst cylinder (1501-2610, default 1501): Using default value 1501Last cylinder, +cylinders or +size{K,M,G} (1501-2610, default 2610): Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux/dev/sdb2 501 1000 4016250 83 Linux/dev/sdb3 1001 2610 12932325 5 Extended/dev/sdb5 1001 1500 4016218+ 83 Linux/dev/sdb6 1501 2610 8916043+ 83 LinuxCommand (m for help):w //保存写The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@joe dev]# fdisk-lDisk/dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46 Device Boot Start End Blocks Id System/dev/sdb1 1 500 4016218+ 83 Linux/dev/sdb2 501 1000 4016250 83 Linux/dev/sdb3 1001 2610 12932325 5 Extended/dev/sdb5 1001 1500 4016218+ 83 Linux/dev/sdb6 1501 2610 8916043+ 83 LinuxDisk/dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000a030a Device Boot Start End Blocks Id System/dev/sda1 * 1 26 204800 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26 281 2048000 82 Linux swap / SolarisPartition 2 does not end on cylinder boundary./dev/sda3 281 536 2048000 83 LinuxPartition 3 does not end on cylinder boundary./dev/sda4 536 2611 16669696 5 Extended/dev/sda5 536 2611 16668672 83 Linux
[root@joe dev]# partedGNU Parted 2.1使用/dev/sda
//注意正在使用的是sdaWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) print all Model: VMware, VMware Virtual S (scsi)Disk /dev/sda: 21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system 标志 1 1049kB 211MB 210MB primary ext4 启动 2 211MB 2308MB 2097MB primary linux-swap(v1) 3 2308MB 4405MB 2097MB primary ext4 4 4405MB 21.5GB 17.1GB extended 5 4406MB 21.5GB 17.1GB logical ext4Model: VMware, VMware Virtual S (scsi)Disk/dev/sdb:
21.5GBSector size (logical/physical): 512B/512BPartition Table: msdos //sdb的应该是我们需要的gptNumber Start End Size Type File system 标志警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。错误: /dev/sr0: unrecognised disk label (parted)select /dev/sdb
//选择sdb 使用 /dev/sdb(parted) mkpart //如果不进行gpt的选择设置,直接mkpart那么我们还是使用的MBR模式 分区类型? primary/主分区/extended/扩展分区? primary 文件系统类型? [ext2]? ^Z--------------------------------------------------------------------------------------------------(parted)select /dev/
sdb 使用 /dev/sdb(parted) mklabel gpt 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do youwant to continue?是/Yes/否/No? yes(parted) print all Model: VMware, VMware Virtual S (scsi)Disk/dev/sda:
21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system 标志 1 1049kB 211MB 210MB primary ext4 启动 2 211MB 2308MB 2097MB primary linux-swap(v1) 3 2308MB 4405MB 2097MB primary ext4 4 4405MB 21.5GB 17.1GB extended 5 4406MB 21.5GB 17.1GB logical ext4Model: VMware, VMware Virtual S (scsi)Disk/dev/sdb:
21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name 标志警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。错误: /dev/sr0: unrecognised disk label (parted) mkpart 分区名称? []? test1 文件系统类型? [ext2]? ext4起始点?1
//以1开始,默认单位是M unit GB 指定为GB为单位 结束点? 1000M (parted) print Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name 标志 1 1049kB 1000MB 999MB test1(parted)rm 1
//删除分区 (parted) print Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name 标志(parted) mkpart 分区名称? []? test1 文件系统类型? [ext2]? ext4 起始点?0 //以0开始,出现了警告,这里是字节对齐的原因造成的,所以一般为了避免警告,我们不以0开始。 结束点? 1000M警告: The resulting partition is not properly aligned for best performance.忽略/Ignore/放弃/Cancel? cancel (parted) mkpart分区名称? []? test1 文件系统类型? [ext2]? ext4 起始点?1 结束点?1000M (parted) print Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name 标志 1 1049kB 1000MB 999MB test1(parted) mkpart 分区名称? []? test2 文件系统类型? [ext2]? ext4 起始点? 1000M 结束点? 1500M (parted) printModel: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name 标志 1 1049kB 1000MB 999MB test1 2 1000MB 1500MB 500MB test2//上面是交互模式,下面是命令模式(parted) mkpart test31500 3000
//使用一条命令直接搞定 分区名 起始位 结束位 警告: The resulting partition is not properly aligned for best performance. //出现分区的原因是起始的1500和上次结束的1500重叠了。忽略/Ignore/放弃/Cancel? cancel (parted) mkpart test3 1501M 1700M (parted) mkpart test4 1701M 1800M (parted) mkpart test5 1801M 1900M (parted) print Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name 标志 1 1049kB 1000MB 999MB test1 2 1000MB 1500MB 500MB test2 3 1501MB 1700MB 199MB test3 4 1701MB 1800MB 99.6MB test4 5 1801MB 1900MB 98.6MB test5(parted)rm 5
(parted) quit
[root@joe dev]#ls -l /dev/sdb*
brw-rw----. 1 root disk 8, 16 5月 7 01:18 /dev/sdbbrw-rw----. 1 root disk 8, 17 5月 7 01:18 /dev/sdb1brw-rw----. 1 root disk 8, 18 5月 7 01:18 /dev/sdb2brw-rw----. 1 root disk 8, 19 5月 7 01:18 /dev/sdb3brw-rw----. 1 root disk 8, 21 5月 7 01:18 /dev/sdb5brw-rw----. 1 root disk 8, 22 5月 7 01:18 /dev/sdb6[root@joe dev]# mkfs.ext3/dev/sdb1
//第一种设置方式mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks502944 inodes, 2008117 blocks100405 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=205940326462 block groups32768 blocks per group, 32768 fragments per group8112 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632正在写入inode表: 完成 Creating journal (32768 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 23 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@joe dev]# mkfs-t ext4 /dev/sdb2
//第二种方法mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks50288 inodes, 200812 blocks10040 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=2097152007 block groups32768 blocks per group, 32768 fragments per group7184 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840正在写入inode表: 完成 Creating journal (4096 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 26 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.[root@joe dev]#mkdir -p /mnt/joetest
//首先建立挂载点[root@joe dev]#mount /dev/sdb1 /mnt/joetest/
//挂载分区[root@joe dev]#umount /mnt/joetest/
//卸载挂载点上面这中挂载方式是临时的,永久性的应该如下:vim+ /etc/
fstab在末尾插入一行/dev/sdb1 /mnt/imooc ext3 default 0 0
设备名称 挂载点 文件系统类型保存退出即可
[root@joe dev]#fdisk /dev/
sdbWARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.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): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000 Device Boot Start End Blocks Id System/dev/sdb1 1 1000 8032468+ 83 Linux/dev/sdb2 1001 1100 803250 83 Linux/dev/sdb3 1101 2610 12129075 5 Extended/dev/sdb5 1101 1500 3212968+ 83 Linux/dev/sdb6 1501 2610 8916043+ 83 LinuxCommand (m for help): tPartition number (1-6):2
//修改IDHex code (type L to list codes): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 982 Linux swap
/ So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic83 Linux
c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-Hex code (type L to list codes): 82Changed system type of partition 2 to 82 (Linux swap / Solaris)Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@joe dev]# fdisk/dev/
sdbWARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.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): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000 Device Boot Start End Blocks Id System/dev/sdb1 1 1000 8032468+ 83 Linux/dev/sdb2 1001 1100 80325082 Linux swap /
Solaris/dev/sdb3 1101 2610 12129075 5 Extended/dev/sdb5 1101 1500 3212968+ 83 Linux/dev/sdb6 1501 2610 8916043+ 83 LinuxCommand (m for help): q[root@joe dev]# mkswap/dev/sdb2
//设置交换区Setting up swapspace version 1, size = 803244 KiBno label, UUID=c7d31434-4013-4bbb-b68e-29b501934377[root@joe dev]# swapon/dev/sdb2
//开启交换区[root@joe dev]# free total used free shared buffers cachedMem: 1030612 132468 898144 0 13612 51388-/+ buffers/cache: 67468 963144Swap:2851232 0 2851232
[root@joe dev]# swapoff/dev/sdb2
//关闭交换区[root@joe dev]#
新闻热点
疑难解答