Linux 磁盘的一生

注意:实验环境都是使用VMware模拟

​ 磁盘接口类型这里vm中是SCSI,扩展sata,ide(有时间可以看看或者磁盘的历史)

​ 总结:磁盘从有到无—类似于建房子到可以住

———————————————————————————————————————————

1.第一个历程:添加磁盘(房子框架)(具体几块看自己,可以做Raid博客可以看我的链接)

image-20240319210605609

不重启检测磁盘:

echo “- - -” > /sys/class/scsi_host/host0/scan

echo “- - -” > /sys/class/scsi_host/host1/scan

echo “- - -” > /sys/class/scsi_host/host2/scan

查看是否添加成功:

[root@shell ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  3.9G  0 part [SWAP]
├─sda3   8:3    0   50G  0 part /
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0 45.1G  0 part /home
sdb      8:16   0    1G  0 disk 
sr0     11:0    1  4.3G  0 rom  /run/media/root/CentOS 7 x86_64

2.第二个历程:分区(区域划分大厅或者是厨房、卧室)

fdisk 【设备名】 例如:fdisk /dev/sdb 扩展分区工具:gdisk parted

fdisk /dev/sdb

[root@shell ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xe348f4b5 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m  #列出菜单

分区选项:

d 删除分区
g 创建一个新的空 GPT 分区表
G 创建一个 IRIX(SGI)分区表
l 列出已知的分区类型
m 打印此菜单
n 添加一个新的分区
p 打印分区表
q 不保存更改退出

n:创建一个新的分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)   #主分区
   e   extended									 #逻辑分区
Select (default p):
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151)+100M
分区 1 已设置为 Linux 类型,大小设为 100 MiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (206848-2097151,默认为 206848):
将使用默认值 206848
Last 扇区, +扇区 or +size{K,M,G} (206848-2097151,默认为 2097151)+100M
分区 2 已设置为 Linux 类型,大小设为 100 MiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (411648-2097151,默认为 411648):
将使用默认值 411648
Last 扇区, +扇区 or +size{K,M,G} (411648-2097151,默认为 2097151)+100M   
分区 3 已设置为 Linux 类型,大小设为 100 MiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e     #选择扩展分区
已选择分区 4				  #因为之前分了三个主分区所以这里自动是4编号
起始 扇区 (616448-2097151,默认为 616448):
将使用默认值 616448
Last 扇区, +扇区 or +size{K,M,G} (616448-2097151,默认为 2097151):
将使用默认值 2097151
分区 4 已设置为 Extended 类型,大小设为 723 MiB

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (618496-2097151,默认为 618496):
将使用默认值 618496
Last 扇区, +扇区 or +size{K,M,G} (618496-2097151,默认为 2097151)+200M
分区 5 已设置为 Linux 类型,大小设为 200 MiB

命令(输入 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 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

扩展一下:

主分区:

​		1,必须存在

​		2,最多有4个

​		3,一般作为系统盘

​		4,分区编号开始:1开始  例如:/dev/sda1

扩展分区:

​		1,不能单独存在

​		2,需要和逻辑分区一起结合

逻辑分区:

​		1,需要有扩展分区

​		2,分区编号:5开始 例如:/dev/sda5

3.第三个历程:格式化(装修房子)

mkfs [ -V ] [ -t 文件系统类型 ] [ fs-选项 ] 文件系统 [ 块 ]

选项
       -V     输出冗长的帮助信息,其中包括执行的各种系统相关的命令.
              一行命令中出现多个此参数可禁止所有系统相关命令的执行。
              这个做法实际上之是在测试时有用。

       -t 文件系统类型
              指定所要创建的文件系统类型。如没有任何指定,
              则使用缺省的文件系统类型(目前是 ext2)。

       fs-选项
              要传递给实际的文件系统制作工具的文件系统相关的选项。
              虽然我们不能保证,但是绝大部分文件系统制作工具支持下面的选项。

       -c     在创建文件系统之前进行设备坏块检查。

       -l filename
              从指定文件 filename 中读取坏块信息。

       -v     产生冗长输出信息。
ext4:是Linux中最常用的文件系统类型之一,支持大容量的文件和分区,具有较高的性能和稳定性。
ext3:是ext4的前身,也是一种常见的Linux文件系统类型,具有日志功能,但相对于ext4来说性能较低。
ext2:是ext3的前身,是一个简单的Linux文件系统,不具备日志功能,因此更容易遭受数据损坏。
XFS:是一种高性能的日志文件系统,适用于大型文件和高并发访问的场景。
Btrfs:是一个新兴的复制文件系统,具有许多先进的特性,如快照、压缩和校验和。
ReiserFS:是一个早期的日志文件系统,但目前在Linux社区中已经较少使用。
NTFS:是Windows系统中常见的文件系统类型,但在Linux中也有支持,通常用于与Windows系统共享数据。
FAT32 和 exFAT:是用于可移动存储设备的常见文件系统类型,可以在Linux和Windows之间共享数据。
ZFS:是一种先进的文件系统,具有强大的数据完整性和管理功能,但在Linux中需要额外的安装和配置。
[root@shell ~]# mkfs -V -t ext4 /dev/sdb1 
mkfs,来自 util-linux 2.23.2
mkfs.ext4 /dev/sdb1 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
[root@shell ~]# 

分区完成之后可以使用 partprobe 设备名 来更新内核中中的分区表信息

例子:partprobe /dev/sdb1

4.第四个历程:挂载(装大门)

mount 【设备名】【挂载点】

-t <filesystem>:指定文件系统类型。例如,-t ext4表示要挂载的文件系统是ext4类型。
-o <options>:指定挂载选项。常见的选项包括:
ro:以只读模式挂载文件系统。
rw:以读写模式挂载文件系统。
remount:重新挂载已经挂载的文件系统,可以修改挂载选项。
noexec:禁止在文件系统上执行可执行文件。
nosuid:禁止在文件系统上执行setuid和setgid权限的文件。
nodev:禁止在文件系统上创建设备文件。
uid=<uid>:设置挂载点的所有者用户ID。
gid=<gid>:设置挂载点的所有者组ID。
umask=<mask>:设置文件权限掩码。
defaults:使用默认挂载选项。
-r 或 --read-only:以只读模式挂载文件系统。
-w 或 --read-write:以读写模式挂载文件系统(与 -o rw 等价)。
-o loop:用于挂载一个镜像文件。
-L <label>:根据文件系统标签来挂载。
-U <uuid>:根据UUID(通用唯一标识符)来挂载。
-a:挂载 /etc/fstab 文件中定义的所有文件系统。
[root@shell ~]# mkdir /data
[root@shell ~]# mount /dev/sdb
sdb   sdb1  sdb2  sdb3  sdb4  sdb5  
[root@shell ~]# mount /dev/sdb1 /data
[root@shell ~]# df -lh
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        50G  5.0G   46G   10% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G   13M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        46G   33M   46G    1% /home
/dev/sda1      1014M  174M  841M   18% /boot
tmpfs           378M  8.0K  378M    1% /run/user/42
tmpfs           378M   36K  378M    1% /run/user/0
/dev/sr0        4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1        93M  1.6M   85M    2% /data

取消挂载:

[root@shell ~]# umount /data    #强制取消挂载使用-f umount -f /dev/sdb1或者挂载点
[root@shell ~]# df -lh
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        50G  5.0G   46G   10% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G   13M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        46G   33M   46G    1% /home
/dev/sda1      1014M  174M  841M   18% /boot
tmpfs           378M  8.0K  378M    1% /run/user/42
tmpfs           378M   36K  378M    1% /run/user/0
/dev/sr0        4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
[root@shell ~]# 

永久挂载:
/etc/fstab 用于系统启动时如何挂载文件系统

格式:<file_system> <mount_point>

​ 设备名或者UUID 挂载路径 文件系统类型 读写等参数 是否备份 是否检查

例子:

[root@shell test]# vim /etc/fstab 
[root@shell test]# tail -1 /etc/fstab    #查看最后一行
/dev/sdb1	/test	ext4 defaults	0 0
[root@shell test]# umount /dev/sdb1		 #因为我在这个目录中所以会出现这个条信息
umount: /test:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@shell test]# cd ..
[root@shell /]# umount /dev/sdb1
[root@shell /]# mount -a 				 #加载/etc/fstab这个文件
[root@shell /]# df -lh
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        50G  5.0G   46G   10% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G   13M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        46G   33M   46G    1% /home
/dev/sda1      1014M  174M  841M   18% /boot
tmpfs           378M     0  378M    0% /run/user/0
tmpfs           378M   12K  378M    1% /run/user/42
/dev/sdb1        93M  1.6M   85M    2% /test
[root@shell /]#

5.测试是否可以放入数据

[root@shell ~]# mount /dev/sdb1 /test
[root@shell ~]# df -lh
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        50G  5.0G   46G   10% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G   13M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5        46G   33M   46G    1% /home
/dev/sda1      1014M  174M  841M   18% /boot
tmpfs           378M     0  378M    0% /run/user/0
tmpfs           378M  8.0K  378M    1% /run/user/42
/dev/sdb1        93M  1.6M   85M    2% /test
[root@shell ~]# cd /test
[root@shell test]# ls
lost+found
[root@shell test]# cd lost+found/
[root@shell lost+found]# ls
[root@shell lost+found]# cd ..
[root@shell test]# touch yuanshang
[root@shell test]# ls
lost+found  yuanshang
[root@shell test]# rm -rf lost+found/
[root@shell test]# ls
yuanshang
[root@shell test]# 

2
/dev/sdb1 93M 1.6M 85M 2% /test
[root@shell ~]# cd /test
[root@shell test]# ls
lost+found
[root@shell test]# cd lost+found/
[root@shell lost+found]# ls
[root@shell lost+found]# cd …
[root@shell test]# touch yuanshang
[root@shell test]# ls
lost+found yuanshang
[root@shell test]# rm -rf lost+found/
[root@shell test]# ls
yuanshang
[root@shell test]#


  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰白的奇迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值