一:文件系统概念基础
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
Windows系统类型
文件系统类型大致就是存储文件的方式,和最大支持独立分区的容量。
例子:
u盘不能拷贝超过4G的大文件的情况,并不是U盘有问题。原来目前的移动存储器,U盘都是采用的FAT32文件系统。导致u盘不能拷贝超过4G的大文件的。解决方案就是改变文件系统类型。
二:LINUX文件系统类型
1.ext2
ext2是为解决ext文件系统的缺陷而设计的可扩展的、高性能的文件系统,又被称为二级扩展文件系统。它是Linux文件系统中使用最多的类型,并且在速度和CPU利用率上较为突出。ext2存取文件的性能极好,并可以支持256字节的长文件名,是GNU/Linux系统中标准的文件系统。
2、ext3
ext3是ext2文件系统的日志版本,它在ext2文件系统中增加了日志的功能。ext3提供了3种日志模式:日志(journal)、顺序(ordered)和回写(writeback)。与ext2相比,ext3提供了更好的安全性以及向上向下的兼容性能。因此,在Linux系统中可以挂在一个ext3文件系统代替ext2文件系统。ext3文件系统格式被广泛应用于目前的Linux系统中。ext3的缺点是缺乏现代文件系统所具有的高速数据处理和解压的性能。此外,使用ext3文件系统还要考虑磁盘限额问题。
3.swap 文件系统
该文件系统是 Linux 中作为交换分区使用的。在安装 Linux 的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是 swap 而没有其他选择。
4.vfat 文件系统
Linux 中把 DOS 中采用的 FAT 文件系统(包括 FAT12,FAT16 和 FAT32)都称为 vfat文件系统。
5.NFS 文件系统
NFS 文件系统是指网络文件系统,这种文件系统也是 Linux 的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且 NFS 文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用 NFS 文件系统可以很方便地实现文件本地修改,而免去了一次次读写 flash 的忧虑。
6.ISO9660 文件系统
这是光盘所使用的文件系统,在 Linux 中对光盘已有了很好的支持,它不仅可以提供对光盘的读写,还可以实现对光盘的刻录。
选取linux7.6书籍内容
三:文件系统结构
Linux文件系统由三部分组成 :文件名,inode,block
Linux文件系统: ext3 ,ext4,xfs
windows文件系统: FAT32,NTFS
block翻译是块,inode翻译是索引,可以这么理解。
友情链接:https://www.cnblogs.com/llife/p/11470668.html
四:硬盘及分区命名规则
因为计算机中有了硬盘设备才使得我们游戏通关过后可以保存记录而不是再重新开始,硬盘设备则是由大量的“扇区”组成的,其中第一个扇区保存着主引导记录与分区表信息。单个扇区容量为512bytes组成,主引导记录需要占用446bytes,分区表的为64bytes,而每记录 一个分区信息需要16bytes, 那么问题来了,好像只能记录4个分区信息?
所以运维人员一般会选择用3个主分区加1个扩展分区的方法,扩展分区中能够创建无限个逻辑分区,这样我们就可以用逻辑分区来满足多分区的需求了,当然这里大家只需明白为什么主分区不能超过4个。
常见的硬件命名专如下:
磁盘分区规则:
主分区和扩展分区一共最多4个;
扩展分区只能有1个;
逻辑分区只能在扩展分区上进行划分;
逻辑分区的分区编号从5开始;
主分区和逻辑分区能被格式化,扩展分区不能格式化
五:硬盘管理(一)
在平常装windows系统中,我们会对磁盘进行分区,达到文件分类的结果。或者是盘多情况下直接添加使用。在linux必须先格式化硬盘过着分区才能使用。因为硬盘默认的格式linux是识别不了的。如果分区使用,那么盘的顺序将会a-p为例,我们新添加的盘是sdb,分了区后就是以分区号来展示。/dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb4就是分区号。如果直接格式化使用那么就是/dev/sdb,
Windows分区
Linux分区
环境准备,需添加一块硬盘。
如果刚添加完硬盘不重启是不能立即识别。
解决方法:
Linux如何不重启扫到磁盘
- 查看主机总线号
[root@network ~]# ls /sys/class/scsi_host/
2.重新扫描SCSI总线来添加设备
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
注意:查看系统日志/var/log/messages,发现对SCSI设备进行了一次重新扫描。需要注意的是echo的三个- – -号之间有空隔。
此时发现多出来一块盘,盘的顺序是根据abcdefg以此类型的形式显示。
注意:一般是扫描/sys/class/scsi_host/host0/scan就直接扫描出来,如果不出现统统扫一遍。
没有格式化的硬盘
无法识别系统类型,类型为空。
六:磁盘格式化
这里使用/dev/sdd举例
[root@localhost ~]# ls /dev/sd* #查看本机硬盘数量及名称
/dev/sda /dev/sda2 /dev/sdc /dev/sde
/dev/sda1 /dev/sdb /dev/sdd
[root@localhost ~]# fdisk /dev/sdd #分区命令
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x68fae116 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n #创建一个新的分区
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): #直接回车默认
Using default response p
分区号 (1-4,默认 1):1 #直接回车默认
起始 扇区 (2048-41943039,默认为 2048):#直接回车默认
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039 #直接回车默认
分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):p #打印分区表磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x68fae116设备 Boot Start End Blocks Id System
/dev/sdd1 2048
出现/dev/sd1 就已经分区完成
但是挂载使用还要格式化写入文件系统
命令:mkfs
[root@localhost ~]# mkfs -t xfs /dev/sdd1
meta-data=/dev/sdd1 isize=512 agcount=4, agsize=1310656 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, 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
七:磁盘的两种挂载方式
1 临时挂载
语法:
mount 磁盘位置 挂载的文件夹
[root@localhost ~]# mount /dev/sdd1 /mnt/
mount: /dev/sdd1 写保护,将以只读方式挂载
2 永久挂载
注意:mount命令是临时挂载,这样挂载的话。关机重启就没了,所以我们要写入/etc/fstab里
[root@localhost ~]# blkid #查找硬盘UUID
/dev/sda1: UUID="7537decf-483b-4ad5-9142-9fa688a711a1" TYPE="xfs"
/dev/sda2: UUID="4SeTMa-yuqg-DWQV-woMz-VYO4-cEvE-5UY4UO" TYPE="LVM2_member"
/dev/sdb1: UUID="aba633ed-f0d3-4c5e-b803-51626ca10b2c" TYPE="xfs"
/dev/sdd1: UUID="b5bb3e17-ad52-4f1d-900e-65d0d8ac4431" TYPE="xfs"
/dev/sr0: UUID="2019-09-11-18-50-31-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="75b3a137-d0fe-43cc-af5f-fee68123c01d" TYPE="xfs"
/dev/mapper/centos-swap: UUID="182c7962-9ef3-4cb0-956e-bc08eae15c19" TYPE="swap"
[root@localhost ~]# vim /etc/fstab #将对应的/dev/sdd1UUID写让文件
查看挂载信息
[root@network ~]# df -Th
/etc/fstab
注意其实有两种挂载方式:
UUID 挂载路径 系统类型 default 0 0
设备文件 挂载路径 系统类型 default 0 0
fdisk分区翻译
命令回顾:
mount命令(临时挂载硬盘等设备)
-a 挂载 /etc/fstab 中的所有文件系统
-r 只读挂载
-w 读写挂载
-t 指定挂载的文件系统类型
umount命令(卸载硬盘等设备)
语法:
-a 卸除/etc/mtab中记录的所有文件系统。
-h 显示帮助。
-n 卸除时不要将信息存入/etc/mtab文件中。
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t<文件系统类型> 仅卸除选项中所指定的文件系统。
-v 执行时显示详细的信息。
-f 强制卸载(硬盘占用)
df命令(检查文件系统的磁盘空间占用情况)
语法:
-a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。
-h:以容易理解的格式输出文件系统大小,例如124KB、345MB、46GB。
-i:显示i节点信息,而不是磁盘块。
-t:显示各指定类型的文件系统的磁盘空间使用情况。
-x:列出不是某一指定类型文件系统的磁盘空间使用情况。
-T:显示文件系统类型。
df 以512字节为单位
df -k 以1024字节为单位
八:Linux UUID的作用及意义
原因1:
它是真正的唯一标志符
UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。
原因2:
设备名并非总是不变的
自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。
使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。