Linux基础-----磁盘与文件系统管理

mac2025-11-17  5

目录

一.硬盘结构

二.MBR

三.Liunx中的硬盘和分区

四.文件系统类型

五.管理磁盘及分区---fdisk命令

六.创建文件系统

七.挂载、卸载文件系统


一.硬盘结构

硬盘的物理结构,盘片:硬盘有个多个盘片,每个盘片2面,磁头:每面一个磁头硬盘的数据结构,扇区:盘片被分为多个扇形区域且每个扇区存放512字节的数据,磁道:同一盘片不同半径的同心圆,柱面:不同盘片相同半径构成的圆柱面硬盘存储容量=磁头数*磁道数(柱面数)*每道扇区数*每扇区字节数可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域磁盘的接口类型可以分为IDE(并口),SATA(串口),SCSI(服务器专用)

二.MBR

MBR(主引导记录)位于硬盘第一个物理扇区处(相当于目录)MBR中包含硬盘的主引导程序和硬盘分区表分区表有4个分区记录区,每个分区记录区占16个字节

三.Liunx中的硬盘和分区

Linux中将硬盘、分区等设备均表示为文件例:/dev/sda5  。/dev代表硬件设备所在的目录 ,/ sda5 中sd表示SCSI设备,另外还有hd表示IDE设备,a表示磁盘序列,5代表分区。硬盘中的主分区和扩展分区数目为4个(主分区必须要有一个),其序列号在1~4扩展分区可以再分为逻辑分区,且逻辑分区的序号始终从5开始

四.文件系统类型

XFS文件系统,存放文件和目录数据的分区,CentOS7系统中默认使用的文件系统SWAP交换文件系统,为Linux系统建立交换分区EXT4文件系统,CentOS6系统中默认使用的文件系统EXT3文件系统,CentOS5系统中默认使用的文件系统FAT16,windows系统使用的文件系统,MS—DOS和win95采用的磁盘分区格式,采用16位的文件分配表,只支持2GB的磁盘分区,最大单文件2GB,且磁盘利用率低FAT32,windows系统使用的文件系统,(即Vfat)采用32位的文件分配表,支持最大分区128GB,最大文件4GBNTFS,windows系统使用的文件系统,支持最大分区2TB,最大文件2TB,安全性和稳定性非常好,不易出现文件碎片

五.管理磁盘及分区---fdisk命令

fdisk -l ,查看当前系统中所有硬盘设备及其分区的信息 [root@localhost ~]# fdisk -l 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000be365 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 12584959 6291456 83 Linux /dev/sda2 12584960 33556479 10485760 83 Linux /dev/sda3 33556480 41945087 4194304 82 Linux swap / Solaris /dev/sda4 41945088 83886079 20970496 5 Extended /dev/sda5 41947136 62918655 10485760 83 Linux [root@localhost ~]# fdisk 【磁盘路径】,查看或者管理磁盘分区交互模式中常用指令,如下-m 帮助信息 ;-p 显示分区信息; -n 新建一个分区; -d 删除分区; -t 转换文件系统id,即转换格式 ;-w 保存信息 ;-q 退出 实例 [root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0xfa0d0f0b 创建新的 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): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G 分区 1 已设置为 Linux 类型,大小设为 5 GiB 命令(输入 m 获取帮助):n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p 分区号 (2-4,默认 2): 起始 扇区 (10487808-41943039,默认为 10487808): 将使用默认值 10487808 Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+2G 分区 2 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): e 分区号 (3,4,默认 3): 起始 扇区 (14682112-41943039,默认为 14682112): 将使用默认值 14682112 Last 扇区, +扇区 or +size{K,M,G} (14682112-41943039,默认为 41943039): 将使用默认值 41943039 分区 3 已设置为 Extended 类型,大小设为 13 GiB 命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l 添加逻辑分区 5 起始 扇区 (14684160-41943039,默认为 14684160): 将使用默认值 14684160 Last 扇区, +扇区 or +size{K,M,G} (14684160-41943039,默认为 41943039): 将使用默认值 41943039 分区 5 已设置为 Linux 类型,大小设为 13 GiB 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@localhost ~]# fdisk -l 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xfa0d0f0b 设备 Boot Start End Blocks Id System /dev/sdb1 2048 10487807 5242880 83 Linux /dev/sdb2 10487808 14682111 2097152 83 Linux /dev/sdb3 14682112 41943039 13630464 5 Extended /dev/sdb5 14684160 41943039 13629440 83 Linux 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000be365 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 12584959 6291456 83 Linux /dev/sda2 12584960 33556479 10485760 83 Linux /dev/sda3 33556480 41945087 4194304 82 Linux swap / Solaris /dev/sda4 41945088 83886079 20970496 5 Extended /dev/sda5 41947136 62918655 10485760 83 Linux [root@localhost ~]#

注:添加一块20G的硬盘,通过fidsk中的辅助功能,创建一个5G大小和2G大小的主分区,创建一个13G的扩展分区,在扩展分区里再创建一个13G的逻辑分区,其中只有主分区和逻辑分区存储数据,而扩展分区不行

六.创建文件系统

在Linux系统里中,使用fdisk工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中的指定目录,然后才能用于存储文件、目录等数据创建文件系统的过程,也就是格式化分区的过程,也可以看作启用这个分区,要不然无法使用Linux系统中使用mkfs(make Filesystem,创建文件系统)命令工具可以格式化XFS、EXT4、FAT等不同类型的分区使用mkswap命令可以格式化Swap交换分区mkfs命令,可以加载不同的程序来创建各种类型的分区实例 [root@192 ~]# ls /sbin/mkfs* /sbin/mkfs /sbin/mkfs.ext2 /sbin/mkfs.fat /sbin/mkfs.vfat /sbin/mkfs.btrfs /sbin/mkfs.ext3 /sbin/mkfs.minix /sbin/mkfs.xfs /sbin/mkfs.cramfs /sbin/mkfs.ext4 /sbin/mkfs.msdos [root@192 ~]# mkfs命令的使用格式:mkfs -t 文件系统类型 分区设备 或者 mkfs.文件系统类型 分区设备实例(扩展分区不能使用,不用格式化,其ID为5) [root@192 ~]# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=1310720, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 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@192 ~]# mkfs ext4 /dev/sdb2 mke2fs 1.42.9 (28-Dec-2013) mkfs.ext2: invalid blocks '/dev/sdb2' on device 'ext4' [root@192 ~]# mkfs -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 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: 完成 [root@192 ~]# mkfs -t xfs /dev/sdb5 meta-data=/dev/sdb5 isize=512 agcount=4, agsize=851840 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=3407360, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 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@192 ~]#

注:一般不在Linux系统创建Windows中的文件类型,如果要在Linux系统中创建FAT文件系统,应该先用fdisk工具添加分区之后将ID改为b

创建swap分区,swap分区的作用类似Windows系统中的虚拟内存,可以一定程度上缓解物理内存不足的情况,当Liunx主机运行的服务较多时,可以为其增加新的swap分区使用mkswap命令工具可以在指定分区上创建交换文件系统,目标分区应该先通过fdisk工具将ID设为82 [root@192 ~]# fdisk -l 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000be365 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 12584959 6291456 83 Linux /dev/sda2 12584960 33556479 10485760 83 Linux /dev/sda3 33556480 41945087 4194304 82 Linux swap / Solaris /dev/sda4 41945088 83886079 20970496 5 Extended /dev/sda5 41947136 62918655 10485760 83 Linux 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xfa0d0f0b 设备 Boot Start End Blocks Id System /dev/sdb1 2048 10487807 5242880 83 Linux /dev/sdb2 10487808 14682111 2097152 83 Linux /dev/sdb3 14682112 41943039 13630464 5 Extended /dev/sdb5 14684160 41943039 13629440 83 Linux [root@192 ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):t 分区号 (1-3,5,默认 5):5 Hex 代码(输入 L 列出所有代码):82 已将分区“Linux”的类型更改为“Linux swap / Solaris” 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@192 ~]# fdisk -l 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000be365 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 12584959 6291456 83 Linux /dev/sda2 12584960 33556479 10485760 83 Linux /dev/sda3 33556480 41945087 4194304 82 Linux swap / Solaris /dev/sda4 41945088 83886079 20970496 5 Extended /dev/sda5 41947136 62918655 10485760 83 Linux 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xfa0d0f0b 设备 Boot Start End Blocks Id System /dev/sdb1 2048 10487807 5242880 83 Linux /dev/sdb2 10487808 14682111 2097152 83 Linux /dev/sdb3 14682112 41943039 13630464 5 Extended /dev/sdb5 14684160 41943039 13629440 82 Linux swap / Solaris [root@192 ~]# 再使用mkswap + 分区设备,创建交换分区 [root@192 ~]# mkswap /dev/sdb5 mkswap: /dev/sdb5: warning: wiping old xfs signature. 正在设置交换空间版本 1,大小 = 13629436 KiB 无标签,UUID=78a5bd52-c1c0-405a-b9ca-d74018a50963 [root@192 ~]# 创建新的交换分区,可以使用swapon进行启用,反之使用swapoff进行停用指定的交换分区

七.挂载、卸载文件系统

在安装Linux系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载,如“/”,“boot”分区等但是对于后来新增加的硬盘分区,则需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统挂载一个分区时,还必须为其指定一个目录作为挂载点,这个目录在磁盘a中实例 [root@192 ~]# ls /opt rh [root@192 ~]# mkdir /opt/day01 [root@192 ~]# echo "hello world" > /opt/day01/day02.txt [root@192 ~]# cat /opt/day01/day02.txt hello world [root@192 ~]# mount /dev/sdb1 /opt/day01 [root@192 ~]# cat /opt/day01/day02.txt cat: /opt/day01/day02.txt: 没有那个文件或目录 [root@192 ~]# echo "I have a pen" > /opt/day01/night02.txt [root@192 ~]# cat /opt/day01/night02.txt I have a pen [root@192 ~]# [root@192 ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sda2 xfs 10G 3.3G 6.8G 33% / devtmpfs devtmpfs 474M 0 474M 0% /dev tmpfs tmpfs 489M 0 489M 0% /dev/shm tmpfs tmpfs 489M 7.2M 482M 2% /run tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda5 xfs 10G 37M 10G 1% /home /dev/sda1 xfs 6.0G 158M 5.9G 3% /boot tmpfs tmpfs 98M 12K 98M 1% /run/user/42 tmpfs tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb1 xfs 5.0G 33M 5.0G 1% /opt/day01 [root@192 ~]#

注:由上述代码可以看到,当我们在磁盘a中创建目录和文件时,可以看到文件内容,但是当我们把这个文件作为磁盘b1的挂载时,就看不到原来的文件了,而且当我们在这个目录创建文件时,这个文件是在磁盘b1下的。

umount命令,使用挂载点目录或对应的设备的文件名作为卸载参数实例 [root@192 ~]# umount /opt/day01 [root@192 ~]# cat /opt/day01/day02.txt hello world [root@192 ~]# cat /opt/day01/night02.txt cat: /opt/day01/night02.txt: 没有那个文件或目录 [root@192 ~]#

注:由上可以看见解挂/opt/day01这个目录点之后,可以看到之前在磁盘a这个目录创建的文件day02.txt,而看不到磁盘b1下创建的文件night02.txt

挂载ISO镜像文件,“iso”镜像文件通常被视为一种特殊的“回环”文件系统,因此在挂载时需要添加 “-o look”设置自动挂载文件系统系统中的/etc/fstab 文件可以视为mount命令的配置文件,其中储存了文件系统的静态挂载数据Linux系统每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统 [root@192 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Oct 23 22:05:20 2019 # # 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=9e75472e-24a7-4fb6-9241-dee91acdffe0 / xfs defaults 0 0 UUID=df84cc7f-d73a-417c-a237-5d5b111d5028 /boot xfs defaults 0 0 UUID=3ba6579a-fce9-4e27-9a82-e50ce18e0899 /home xfs defaults 0 0 UUID=7ad95712-3079-41f4-969d-91d003d2bfa7 swap swap defaults 0 0 [root@192 ~]# 其中各个部分的含义第一字段是设备分区,第二字段是挂载点,第三字段是文件系统类型,第四字段中的defaults 代表能读能写(权限功能),第一个0容灾备份(可靠性),第二个0 (启动检查序列)实例(需要重启才能看到,是否被自动挂载) [root@192 ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sda2 xfs 10G 3.3G 6.8G 33% / devtmpfs devtmpfs 474M 0 474M 0% /dev tmpfs tmpfs 489M 0 489M 0% /dev/shm tmpfs tmpfs 489M 7.2M 482M 2% /run tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda5 xfs 10G 37M 10G 1% /home /dev/sda1 xfs 6.0G 158M 5.9G 3% /boot tmpfs tmpfs 98M 24K 98M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64 [root@192 ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Wed Oct 23 22:05:20 2019 # # 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=9e75472e-24a7-4fb6-9241-dee91acdffe0 / xfs defaults 0 0 UUID=df84cc7f-d73a-417c-a237-5d5b111d5028 /boot xfs defaults 0 0 UUID=3ba6579a-fce9-4e27-9a82-e50ce18e0899 /home xfs defaults 0 0 UUID=7ad95712-3079-41f4-969d-91d003d2bfa7 swap swap defaults 0 0 /dev/sdb1 /opt/day01 xfs defaults 0 0

注:在vi编辑器里操作时要注意编写格式!使用df -hT,命令可以看到当前系统中挂载的各个文件系统的磁盘使用情况。

下面代码是重启之后的情况!

[root@192 ~]# init 6 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(centos7-1) at 23:47:24. Type `help' to learn how to use Xshell prompt. [D:\~]$ Connecting to 192.168.43.133:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Last login: Fri Nov 1 23:18:26 2019 [root@192 ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sda2 xfs 10G 3.3G 6.8G 33% / devtmpfs devtmpfs 474M 0 474M 0% /dev tmpfs tmpfs 489M 0 489M 0% /dev/shm tmpfs tmpfs 489M 7.2M 482M 2% /run tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sdb1 xfs 5.0G 33M 5.0G 1% /opt/day01 /dev/sda5 xfs 10G 37M 10G 1% /home /dev/sda1 xfs 6.0G 158M 5.9G 3% /boot tmpfs tmpfs 98M 0 98M 0% /run/user/0 tmpfs tmpfs 98M 8.0K 98M 1% /run/user/42 [root@192 ~]#

 

最新回复(0)