Linux 磁盘管理
目录
磁盘分区表示
Linux中将硬盘、分区等设备均表示为文件
硬盘和分区的结构
硬盘和分区
- MBR:主引导记录 ,存在于驱动器开始部分的一个特殊的启动扇区。
- 主分区:一个硬盘最多能被分成四个主分区。(是不是不太够用?)
- 扩展分区:如果分区数目不够用,可以把一个主分区定义为一个扩展分区。
- 逻辑分区:然后再把这个这个扩展分区分为一个或多个逻辑分区。这样分区数就可以随心设置了。
- 命名:/dev/vda5,/dev/sda1
一个硬盘允许4个主分区,扩展分区是从5开始的,所以sda5就是扩展分区,sda1、sda2是主分区。
文件系统类型
Linux中默认使用的文件系统类型
- EXT4, 第4代扩展(Extended)文件系统
- SWAP,交换文件系统
Linux支持的其它文件系统类型
- FAT16、FAT32、NTFS
- XFS、JFS
……
参考文档:
[1] https://www.linuxidc.com/Linux/2017-10/147456.htm
[2]
确认系统中的磁盘设备
fdisk命令
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备]
交互模式中的常用指令
m:查看操作指令的帮助信息 p:列表查看分区信息 n:新建分区 d:删除分区 t:变更分区类型 w:保存分区设置并退出 q:放弃分区设置并退出
查看硬盘
fdisk命令
格式:fdisk -l [磁盘设备]
命令输出:(以下放置代码)
可以看到当前系统中有两块磁盘,/dev/sda和/dev/sdb.分区信息:
Device : 设备名称 Boot: 是否为系统引导分区,如果是则显示为“*”号 Start:分区的起始柱面 End:分区的结束柱面 blocks:分区块的数量 Id:分区的id号,一般普通系统分区为83,swap分区为82,lvm为83,扩展分区为5
[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000afd9c Device Boot Start End Blocks Id System /dev/sda1 * 1 1275 10240000 83 Linux /dev/sda2 1275 1785 4096000 83 Linux /dev/sda3 1785 2295 4096000 82 Linux swap / Solaris
如果装系统时选择自动分区,则执行此命令时会出现如下输出,这样是正常的:
[root@cloud17 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x0000246b Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 2611 20458496 8e Linux LVM Disk /dev/dm-0: 16.8 GB, 16752050176 bytes 255 heads, 63 sectors/track, 2036 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/dm-0 doesn't contain a valid partition table Disk /dev/dm-1: 4194 MB, 4194304000 bytes 255 heads, 63 sectors/track, 509 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/dm-1 doesn't contain a valid partition table
lvm会把每个lv连接到一个/dev/dm-x的设备档,这个设备档并不是一个真正的磁盘,当然不会有分区表存在了,所以这也不算是错误信息。其实用lvm挺方面的,fedora的安装手册就建议分出boot和swap后把剩下的空间全分到lvm,这样以后就不用担心分区会分小或分大的问题,很方面的。
添加硬盘
以VMware虚拟机为例,添加硬盘进行如下操作即可:
添加硬盘之后可在命令行上输入fdisk -l 看硬盘是否发生变化(如果虚拟机正在运行,需要把它关闭之后重启再输入这条命令)
[root@localhost ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000afd9c Device Boot Start End Blocks Id System /dev/sda1 * 1 1275 10240000 83 Linux /dev/sda2 1275 1785 4096000 83 Linux /dev/sda3 1785 2295 4096000 82 Linux swap / Solaris Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 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
显示已添加硬盘sdb,但还没有分区,下面我们就对它进行分区
创建磁盘分区
创建磁盘分区
fdisk命令
- 用途:在交互式的操作环境中管理磁盘分区
- 格式:fdisk [磁盘设备]
交互模式中的常用指令
*m:查看操作指令的帮助信息 *p:列表查看分区信息 *n:新建分区 *d:删除分区 *t:变更分区类型 *w:保存分区设置并退出 *q:放弃分区设置并退出
分区操作:
fdisk /dev/sdb
[root@localhost ~]# 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 0x4d79e771. 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 (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) Command (m for help):
根据提示输入n,建立分区
Command (m for help): n Command action e extended p primary partition (1-4)
根据提示输入p建立主分区(p表示主分区,e表示扩展分区)
根据提示输入1 ,选择创建1号主分区
Partition number (1-4): 1
输入起始柱面号,直接回车:
Partition number (1-4): 1
输入分区结束柱面号,输入+500M(指定整个分区的大小为500M):
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +500M
输入t,指定分区类型:
Command (m for help): t
输入L ,查看各种分区的类型号:
Selected partition 1 Hex code (type L to list codes): L
输入83, 选择Linux分区类型
Hex code (type L to list codes): 83
输入p ,查看现在的分区表 ?
输入w ,存盘退出:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
格式化分区
对硬盘分完区后,我们输入fdisk -l命令可显示如下信息:
Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000afd9c Device Boot Start End Blocks Id System /dev/sda1 * 1 1275 10240000 83 Linux /dev/sda2 1275 1785 4096000 83 Linux /dev/sda3 1785 2295 4096000 82 Linux swap / Solaris Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 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: 0x4d79e771 Device Boot Start End Blocks Id System /dev/sdb1 1 130 1044193+ 83 Linux
接下来,我们可以用mkfs命令为其刚刚分的区创建文件系统(格式化)
mkfs命令
用途:Make Filesystem,创建文件系统(格式化) 格式:mkfs -t 文件系统类型 分区设备
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
管理交换空间(选学)
如果刚才创建的分区是交换空间(swap),则需要对其进行管理。
交换分区是磁盘驱动器上的空间,用作当前未使用部分内存的溢出。
系统就能在内存中留出空间用于存储当前正在处理的数据,并在系统面临主内存空间不足的风险时提供应急溢出。
交换空间大小
系统RAM 建议的最小交换空间
最大4GB 至少2GB 4GB到16GB 至少4GB 16GB到64GB 至少8GB 64GB到256GB 至少16GB
mkswap命令
用途:Make Swap,创建交换文件系统 格式:mkswap 分区设备
查看交换空间:
[root@localhost ~]# swapon -s Filename Type Size Used Priority /dev/sda3 partition 4095992 0 -1
格式化交换分区:
mkswap /dev/sdb5
启用交换分区
swapon /dev/sdb6
free | grep -i swap
停用交换分区:
swapoff /dev/sdb6
删除分区
输入键盘d键:
Command (m for help): d Selected partition 1 Command (m for help): w The partition table has been altered!