注意:实验环境都是使用VMware模拟
磁盘接口类型这里vm中是SCSI,扩展sata,ide(有时间可以看看或者磁盘的历史)
总结:磁盘从有到无—类似于建房子到可以住
———————————————————————————————————————————
1.第一个历程:添加磁盘(房子框架)(具体几块看自己,可以做Raid博客可以看我的链接)
不重启检测磁盘:
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]#