linux之文件系统
文件系统
文件系统是操作系统用于明确磁盘或者分区上相关文件的方法和数据结构,通俗的说法就是在磁盘上组织文件的方法。
linux有很多不同的文件系统,例如ext2、ext3、ext4、zfs、iso9660、vfat、msdos等等。
文件系统虽然多种多样,但是大部分linux系统都具有类似的通用结构,包括超级块(superblock)、i节点(inode)、数据块(datablock)、目录块(directory block)等。
磁盘分区、创建文件系统、挂载
磁盘使用前必须对其分割,这种动作形象地被称为分区。
磁盘的分区可以分为两类,即主分区和扩展分区。受磁盘的分区表的大小限制,分区表占64字节,每个分区信息使用16字节,故一个磁盘最多创建4个分区。
在完成磁盘分区后,需要进行创建文件系统的操作,最后将分区挂载到系统中的某个挂载点才能使用。
创建文件系统
创建文件系统可以利用fdisk来创建。如果系统已经创建好了文件,则显示的是创建好的文件系统。
我的系统已经创建好了,利用fdisk -l 查看详细信息。
swz@swz-ubuntu18:~$ sudo fdisk -l
[sudo] swz 的密码:
Disk /dev/loop0:2.3 MiB,2433024 字节,4752 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop1:114 MiB,119525376 字节,233448 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop2:14.5 MiB,15196160 字节,29680 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop3:55.5 MiB,58232832 字节,113736 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop4:140.9 MiB,147722240 字节,288520 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop5:3.7 MiB,3887104 字节,7592 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop6:34.7 MiB,36323328 字节,70944 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop7:13 MiB,13619200 字节,26600 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/sda:60 GiB,64424509440 字节,125829120 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x13c29965
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 125827071 125825024 60G 83 Linux
Disk /dev/loop8:140.7 MiB,147517440 字节,288120 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop9:219 MiB,229638144 字节,448512 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop10:61.9 MiB,64933888 字节,126824 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop11:4 KiB,4096 字节,8 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop12:400.8 MiB,420265984 字节,820832 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop13:2.5 MiB,2658304 字节,5192 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop14:556 KiB,569344 字节,1112 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop15:2.6 MiB,2748416 字节,5368 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop16:91.7 MiB,96141312 字节,187776 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/loop17:704 KiB,720896 字节,1408 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
假如系统加了一块设备,使用fdisk -l,发现其名为/dev/sdb。然后输入fdisk /dev/sdb,输入n,创建新的分区。再输入p,创建主分区。再输入起始柱面,再输入结束柱面。最后输入w,完成分区。
上述的设备在分区变成了新的名称,/dev/sdb1。利用创建文件系统的格式,利用 mkfs.ext3 /dev/sdb1创建新的文件系统。其中ext3是文件系统格式。
磁盘挂载
磁盘挂载可以使用mount来挂载设备,具体用法是mount DEVICE MOUNT_POINT。其中DEVICE是指具体的设备,MOUNT_POINT指的是挂载点,必须为一个目录。我们可以在/root目录下创建一个新的目录。
设置自动挂载
利用mount命令挂载的设备在重启计算机之后就会消失,必须配置/etc/fstab才能自动挂载。
echo “/dev/sdb1 /root/newDisk ext3 defaults 0 0” >>/etd/fstab
default是系统默认参数,第一个0是决定表示是否进行备份,0代表不备份。
第二个0代表系统启动时是否对该设备进行fsck,0代表不检查。
磁盘检验
当磁盘出现逻辑错误时,可以使用fsck来尝试修复。
该命令的使用:fsck -t TYPE /DEVICE/PATH
其中TYPE是指的文件系统的类型,/DEVICE/PATH指的设备的绝对路径。注意fsck检查磁盘必须是未挂载的设备。我们可以使用umount命令来解除挂载,,umount命令的参数可以是设备路径或者 是挂载点。例如:umount /DEVICE/PATH umount MOUNT_POINT
当系统根目录出现问题,可以在系统重启后,使用单用户登录之后,使用fsck来检查。
linux逻辑卷
磁盘一旦经过分区后,再想改变磁盘中这个分区的大小就很难了。
逻辑卷
逻辑卷就是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备,也是Linux操作系统可以认识的设备。
-
物理卷(Physical Volume,PV),也就是物理磁盘分区,比如说/dev/sdb1。 -
卷组(Volume Group,VG),也就是PV的集合。 -
逻辑卷(Logic Volume,LV),也就是PV中划出来的一块逻辑磁盘。
制作逻辑卷
创建物理卷
可以利用命令pvcreate、pvdisplay。
创建完分区之后,现修改分区的逻辑号。再利用pvcreate创建物理卷,利用pvscan或者pvdisplay显示分区的PV。
创建并查询卷组
利用命令vgcreate、vgdiplay命令来创建卷组,并查询卷巨。
vgcreate VG_NAME DEVICE1 … DEVICEn,其中VG_NAME是卷组名字,后面代表设备名字。
扩容卷组
利用vgextend命令可以扩展就卷组的容量大小容量。其使用命令为:vgextend VG_NAME DEVICE1 … DEVICEn,其中VG_NAME是待扩展的卷组。
创建逻辑卷
当卷组创建好了之后,可以直接创建逻辑卷。利用lvcreate、lvdisplay。
其命令使用如下:lvcreate -L SIZE -n LV_NAME VG_NAME
其中-L参数指的是逻辑卷的大小,后面的SIZE表示的具体的逻辑卷的大小的值,比如说300M;-n指的是逻辑卷的名字,最后的参数VG_NAME是指从什么卷组中分配空间。
创建文件系统并且挂载
在创建好了文件的逻辑卷之后,同理逻辑卷必须要创建文件系统,然后挂载才能被系统使用。其使用类似之前的分区以及文件系统划分以及最后的挂载。
硬链接和软链接
硬链接
硬链接是指实际的链接,是指通过节点来进行链接。linux文件系统中,文件都会有编号,多个文件名指向同一个节点是被允许的,这种链接是指硬连接。
硬链接有两个限制:
- 不允许给目录创建硬链接
- 只有在同一文件系统中的文件之间才能创建链接,即不同分区上的文件之间不能直接建立硬链接。
软链接
软链接又称符号链接,是一个包含了另外一个文件路径名的文件,可以指向任意文件或者目录,也可以跨不同的文件系统。软链接和windows下的快捷方式有点类似,删除软链接不会删除指向的源文件。
|