磁盘分区
虚拟机需要通过设置手动添加硬盘,本例设置为10GB。在机房服务器中是支持热拔插硬盘的。
磁盘一般要先分区,再格式化,最后挂载才能使用。但是也可以不分区直接格式化挂载使用。
[root@chy002 ~]# fdisk 用法: fdisk [选项] <磁盘> 更改分区表 fdisk [选项] -l <磁盘> 列出分区表 fdisk -s <分区> 给出分区大小(块数) 选项: -b <大小> 扇区大小(512、1024、2048或4096) -c[=<模式>] 兼容模式:“dos”或“nondos”(默认) -h 打印此帮助文本 -u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认) -v 打印程序版本 -C <数字> 指定柱面数 -H <数字> 指定磁头数 -S <数字> 指定每个磁道的扇区数
重启计算机之后,可以看到新增加的硬盘。
[root@chy002 ~]# fdisk -l 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000c9e18 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris /dev/sda3 4605952 41943039 18668544 83 Linux 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节
开始进行分区
[root@chy002 ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x0214a8e0 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition #删除一个分区 g create a new empty GPT partition table G create an IRIX (SGI) partition table 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) 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-20971519,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G 分区 1 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux 命令(输入 m 获取帮助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p 分区号 (2-4,默认 2): 起始 扇区 (4196352-20971519,默认为 4196352): 将使用默认值 4196352 Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+2G 分区 2 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 8390655 2097152 83 Linux 命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p 分区号 (3,4,默认 3): 起始 扇区 (8390656-20971519,默认为 8390656): 将使用默认值 8390656 Last 扇区, +扇区 or +size{K,M,G} (8390656-20971519,默认为 20971519):+2G 分区 3 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):n Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): p 已选择分区 4 起始 扇区 (12584960-20971519,默认为 12584960): 将使用默认值 12584960 Last 扇区, +扇区 or +size{K,M,G} (12584960-20971519,默认为 20971519): 将使用默认值 20971519 分区 4 已设置为 Linux 类型,大小设为 4 GiB 命令(输入 m 获取帮助):n If you want to create more than four partitions, you must replace a primary partition with an extended partition first. #可以发现,4个主分区后,就不能再创建分区。主分区+扩展分区=<4. #如果还需要添加磁盘,可以在扩展分区里,再进行分逻辑分区 命令(输入 m 获取帮助):d 分区号 (1-4,默认 4): 分区 4 已删除 命令(输入 m 获取帮助):n Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): e 已选择分区 4 起始 扇区 (12584960-20971519,默认为 12584960): Last 扇区, +扇区 or +size{K,M,G} (12584960-20971519,默认为 20971519): 将使用默认值 20971519 分区 4 已设置为 Extended 类型,大小设为 4 GiB 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 5 起始 扇区 (12587008-20971519,默认为 12587008): 将使用默认值 12587008 Last 扇区, +扇区 or +size{K,M,G} (12587008-20971519,默认为 20971519):+1G 分区 5 已设置为 Linux 类型,大小设为 1 GiB #可以发现只能添加逻辑分区 命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 6 起始 扇区 (14686208-20971519,默认为 14686208): 将使用默认值 14686208 Last 扇区, +扇区 or +size{K,M,G} (14686208-20971519,默认为 20971519):+1G 分区 6 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 8390655 2097152 83 Linux /dev/sdb3 8390656 12584959 2097152 83 Linux /dev/sdb4 12584960 20971519 4193280 5 Extended /dev/sdb5 12587008 14684159 1048576 83 Linux /dev/sdb6 14686208 16783359 1048576 83 Linux 命令(输入 m 获取帮助):d 分区号 (1-6,默认 6):5 分区 5 已删除 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 8390655 2097152 83 Linux /dev/sdb3 8390656 12584959 2097152 83 Linux /dev/sdb4 12584960 20971519 4193280 5 Extended /dev/sdb5 14686208 16783359 1048576 83 Linux #可以发现,删除逻辑分区,数后的磁盘会紧随跟上,数字不会留空 #但是主分区会留空 命令(输入 m 获取帮助):d 分区号 (1-5,默认 5):1 分区 1 已删除 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb2 4196352 8390655 2097152 83 Linux /dev/sdb3 8390656 12584959 2097152 83 Linux /dev/sdb4 12584960 20971519 4193280 5 Extended /dev/sdb5 14686208 16783359 1048576 83 Linux 命令(输入 m 获取帮助):d 分区号 (2-5,默认 5):4 分区 4 已删除 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb2 4196352 8390655 2097152 83 Linux /dev/sdb3 8390656 12584959 2097152 83 Linux #可以发现删除扩展分区4后,逻辑分区5也会消失 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 #查看分区可以发现,多了两个分区 [root@chy002 ~]# fdisk -l 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000c9e18 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris /dev/sda3 4605952 41943039 18668544 83 Linux 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0214a8e0 设备 Boot Start End Blocks Id System /dev/sdb2 4196352 8390655 2097152 83 Linux /dev/sdb3 8390656 12584959 2097152 83 Linux
磁盘格式化
查看已经挂载的分区文件系统格式
[root@chy002 ~]# mount #最后几行可以看到,centos7磁盘格式为xfs ... ... /dev/sda3 on / type xfs (rw,relatime,attr2,inode64,noquota) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) debugfs on /sys/kernel/debug type debugfs (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) /dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
关于块和文件时间大小,说一下;
[root@chy002 ~]# touch /tmp/123123.txt [root@chy002 ~]# ls -l /tmp/123123.txt -rw-r--r-- 1 root root 0 11月 3 05:23 /tmp/123123.txt [root@chy002 ~]# du -sh !$ du -sh /tmp/123123.txt 0 /tmp/123123.txt [root@chy002 ~]# echo "1"> !$ echo "1"> /tmp/123123.txt [root@chy002 ~]# ls -l /tmp/123123.txt -rw-r--r-- 1 root root 2 11月 3 05:23 /tmp/123123.txt [root@chy002 ~]# du -sh /tmp/123123.txt 4.0K /tmp/123123.txt #可以发现,仅仅写了一个数字,也是占用了4.0k一个块结构。
#mke2fs -t 格式 -b块大小 [一般为4k] 磁盘 该命令不支持 xfs格式 [root@chy002 ~]# mke2fs -t ext4 /dev/sdb2 #mkfs.ext4相同效果 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131072 inodes, 524288 blocks 26214 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=536870912 16 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (16384 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
如果需要格式话为xfs格式,使用下面的命令。
[root@chy002 ~]# mkfs.xfs -f /dev/sdb3 meta-data=/dev/sdb3 isize=256 agcount=4, agsize=131072 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=524288, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@chy002 ~]# blkid /dev/sdb3 #没有挂载的话,mount看不到sdb3,使用该命令可以 /dev/sdb3: UUID="c98d48c4-e175-4bf6-a33b-001bb4e7c1c5" TYPE="xfs"
其中的 -b 参数,可以指定块的大小, -m 指定分区预留大小。
[root@chy002 ~]# mke2fs -b 8192 -m 1 /dev/sdb2 Warning: blocksize 8192 not usable on most systems. mke2fs 1.42.9 (28-Dec-2013) mke2fs: 8192-byte blocks too big for system (max 4096) 无论如何也要继续? (y,n) y Warning: 8192-byte blocks too big for system (max 4096), forced to continue warning: 32 blocks unused. 文件系统标签= OS type: Linux 块大小=8192 (log=3) 分块大小=8192 (log=3) Stride=0 blocks, Stripe width=0 blocks 131072 inodes, 262112 blocks 2620 blocks (1.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=268402688 4 block groups 65528 blocks per group, 65528 fragments per group 32768 inodes per group Superblock backups stored on blocks: 65528, 196584 Allocating group tables: 完成 正在写入inode表: 完成 Writing superblocks and filesystem accounting information: 完成
mkfs.ext4 与 mke2fs 支持选项是一致的
-i 指定多少个字节对应一个 inode,最低一个块对应一个inode。
[root@chy002 ~]# mke2fs -i 8192 -t ext4 /dev/sdb2 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 262144 inodes, 524288 blocks #可以发现变成了 1:2,默认1:4 16384字节 26214 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=536870912 16 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (16384 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
磁盘挂载
#磁盘挂载之后才能使用 #挂载命令 #mount 盘符(UUID或者分区名) 挂载文件 #卸载 卸载前保证路径不在当下磁盘, #umount -l 在磁盘路径下也可以卸载 # -a 自动挂载fstab里面的 [root@chy002 ~]# mount /dev/sdb2 /mnt/ [root@chy002 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 18G 1.1G 17G 6% / devtmpfs 489M 0 489M 0% /dev tmpfs 494M 0 494M 0% /dev/shm tmpfs 494M 6.7M 487M 2% /run tmpfs 494M 0 494M 0% /sys/fs/cgroup /dev/sda1 197M 75M 123M 38% /boot /dev/sdb2 1.9G 6.0M 1.8G 1% /mnt [root@chy002 ~]# mount #通过mount可以看到磁盘的格式 ... ... /dev/sdb2 on /mnt type ext4 (rw,relatime,data=ordered)
mount有挂载选项。
[root@chy002 ~]# man mount #默认这么多选项,可以自行添加删去 defaults Use default options: rw, suid, dev, exec, auto, nouser, and async. #-o 选项 rw只读/suid允许分区suid/dev用不到/exec允许可执行,,改成no exec则磁盘内文件就变成不可执行 /auto自动挂载/nouser不允许普通用户挂载/async磁盘和内存不同步,隔段时间内存写入磁盘
文件 /etc/fstab
[root@chy002 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Mon Oct 16 22:15:47 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=680bd219-7a25-4856-821d-77f250733e5e / xfs defaults 1 1 UUID=95c13422-958b-4bb0-8968-c7154e34b754 /boot xfs defaults 1 2 UUID=079a651c-3b8d-46a5-ad21-8543bbf79bdf swap swap defaults 0 0 #/etc/fstab 系统启动时会挂载分区,就是通过该文件配置的 #第一列:分区标识(UUID/分区名) #第二列:挂载点 #第三列:分区的格式 #第四列:一般写defaults,就是上面的-o后面的六个默认选项 #第五列:是否被dump备份,现在几乎没用,设置0即可 #第六列:开机自检,根分区必须为1,fastab表仅允许一个1,检测完了才去检测2