您的位置:首页 > 运维架构 > Shell

Linux系统命令及Shell脚本学习笔记四:Linux文件系统

2015-08-10 16:30 1046 查看

文件系统

磁盘的物理存储方式决定了其根本没有文件和目录的概念,在Linux中采用的是文件系统+虚拟文件系统(Virtual File System,VFS)的解决方案

文件系统是OS用于明确磁盘或者分区上相关文件的方法和数据结构,在使用前都需要对磁盘进行初始化操作,并将记录的数据结构写到磁盘上,这种操作就是建立文件系统,在有些操作系统中称之为格式化。

Linux支持不同的文件系统:ext2 ext3 ext4 zfs iso9660 vfat msdos smbfs nfs

大部分Linux系统都具有类似的通用结构,包括超级块,i节点, 数据块,目录块等。超级块包括文件系统的总体信息,是文件系统的核心,所以在磁盘中会有多个超级块,以防由于磁盘出现坏块导致全部文件系统无法使用。i节点存储所有与文件有关的元数据,包括文件所有者,权限等属性数据以及指向的数据块,但不包括文件名和文件内容。数据块是真实存放文件数据的部分,一个数据块默认是4KB。目录块包括文件名和文件在目录中的位置,并包括文件的i节点信息。

ext2文件系统不支持日志功能。

ext3有日志功能并可以从ext2简单地转换成ext3. 日志文件系统使用两阶段提交的方式来维护待处理的事务。比如在写数据之前,文件系统会先在日志中写入相关记录信息,然后在开始真实地写数据,写完数据后则会将之前写入日志的内容删除。

磁盘使用前需要对其进行分割,称为分区。磁盘的分区分为两类,即主分区和扩展分区。受限制于磁盘的分区表大小(64节),由于每个分区信息使用16字节,所以一块磁盘最多能创建4个分区。在完成磁盘分区后,需要进行创建文件系统的操作,最后将该分区挂载到系统中的某个挂载点才可以使用

首先在虚拟机设置中添加一块磁盘,磁盘类型为SCSI。使用fdisk -l可查看到添加的磁盘,设备/dev/sdb. 下面开始分区操作:fdisk /dev/sdb,输入字母n,代表new,然后选择主分区还是扩展分区,划分柱面,最后输入字母w,将创建的分区写入分区表。fdisk -l查看分区为/dev/sdb1.接着格式化文件系统: mkfs -t ext3 /dev/sdb1 或者 mkfs.ext3 /dev/sdb1

创建了文件分区后,还需要挂载才能使用。mount DEVICE MOUNT_POINT

如上:创建/root/newDisk目录,mount /dev/sdb1 /root/newDisk

mount不加参数会显示所有挂载设备

但是使用mount命令挂载的设备在重启计算机后会消失,必须通过配置/etc/fstab使得系统在重启后能自动挂载。

echo "/dev/sdb1 /root/newDisk ext3 defaults 0 0">>/etd/fstab

第五列决定dump命令在进行备份时是否要将这个分区存档

第六列设定系统启动时是否对该设备进行fsck:0表示不检查

磁盘出现逻辑错误的检验fsck -t FileType </DEVICE/PATH> ,这个操作需要先解除挂载 umount </DEVICE/PATH or MOUNT_POINT>

umount /root/newDisk

fsck -t ext3 /dev/sdb1

磁盘的物理坏道检验:badblocks -v /dev/sdb1

逻辑卷

逻辑卷是使用逻辑卷组管理(Logic Volume Manager)创建出来的设备。LVM是介于硬盘裸设备和文件系统的中间层。

物理卷(Physical Volume,PV)就是物理磁盘分区,比如/dev/sdb1. 若想使用LVM来管理这个物理卷,可使用fdisk工具将其ID改为LVM可以识别的值8e

卷组:PV的集合

逻辑卷:PV中划出来的一块逻辑磁盘

如何制作逻辑卷

先给虚拟机创建一个磁盘,添加成功后启动虚拟机,查看新设备/dev/sdc

给新设备分区:fdisk /dev/sdc,输入命令n创建,fdisk -l查看分区创建是否成功

修改ID值为8e,fdisk /dev/sdc,输入命令t修改分区代码

下面使用pvcreate将分区创建为PV, pvcreate /dev/sdc1 完成后可使用pvscan查看系统所有的物理卷,pvdisplay可显示更为详细的使用状态

创建并查询卷组:vgcreate VG_name /dev/sdc1 /dev/sdc2,查看命令:vgscan, vgdisplay

扩容卷组 vgextend VG_name /dev/sdc3

创建逻辑卷:lvcreate -L 100M -n LV_name VG_name,完成后使用lvdisplay查看

创建文件系统并挂载:

mkfs.ext3 /dev/VG_name/LV_name

mkdir /root/newLV

mount /dev/VG_name/LV_name /root/newLV

此时逻辑卷即可使用

硬链接:

通过索引节点来进行链接,多个文件名指向同一inode

不允许给目录创建硬链接

只有在同一文件系统中的文件之间才能创建链接

ls -li可以显示文件的inode 可以查看来确认inode信息

软链接

是一个包含了另一文件路径名的文件,可以指向任意文件或目录,也可以跨不同的文件系统。删除软链接并不会删除其指向的源文件,若删除了源文件,则软链接会出现断链

ln -s source target

使用ls -li查看软链接的inode与源文件不一样
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: