Linux磁盘分区和文件管理系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘分区和文件管理系统相关的知识,希望对你有一定的参考价值。
1、磁盘分区
磁盘类型分为串口的IDE硬盘(hd[a-d])和并口的SCSI、SATA硬盘(sd[a-z])。
硬盘的分区分为主分区(p)和扩展分区两类(e),硬盘的主分区可以划分为4个分区,扩展分区需要继续二次分区后才能使用,即逻辑分区,且主分区和扩展分区之和不能超过4,逻辑分区是没有数量上的限制,逻辑分区一定是从sd[a-z]5开始。
分区命令:fdisk、parted、cfdisk、sfdisk 一般划分2T以下的硬盘用fdisk、2T以上的用parted。
fdisk命令:
查看磁盘分区情况:fdisk -l
对磁盘进行分区:fdisk disk
以/dev/sdb为例对其分区:fdisk /dev/sdc
分区选项:n:添加新的分区 d:删除分区 l:列出所有分区类型 p:输出分区表
q:退出不保存 w:保存并退出 t:更改分区类型
创建一个1G的主分区:
最多创建4个主分区,如果不需要扩展分区的话,扩展分区要占一个主分区。
如果删除的话直接在分区里面选择d,然后选择要删除的分区号
文件管理系统
创建文件系统需要格式化:
1、低级格式化:主要划分磁道,在分区之前
2、高级格式化:主要创建文件系统,在分区之后
文件系统的分类:
Linux文件系统:ext2、ext3、ext4、xfs、relsefs、btrfs
windows文件系统:ntfs、fat32
光盘:iso9660
网络文件系统:nfs,clfs
集群文件系统:gfs2(Redhat),ocfs(Oracle)
内核级的分布式文件系统:ceph
用户空间的分布式文件系统:glusterfs.lustre,tfs...
交换文件系统:swap
unix的文件系统:UFS,FFS,JFS,Jfs2
伪文件系统:proc,sysfs,tmpfs
文件系统的数据:
1.元数据:与文件内容无关,存放文件的名称、大小、权限、属主、属组、时间戳、数据块指针等,
为这些文件信息提供一个存储空间,就叫inode,称为索引节点。
2.数据:存放文件的内容,
链接文件:
1、硬链接:指向相同的idnode的多个文件路径
特性:
1、目录不支持硬链接
2、硬链接不能跨文件系统 每个文件系统的iodine都是独立管理的
3、创建硬链接会增加inode引用计数
4、删除一个文件不影响另一个文件。
用法:ln 源文件 目标文件
2、 软链接:指向一个文件路径的另一个文件路径
特性:
1、符号连接与文件是两个各自独立的文件,各有自己的inode,对原文件创建符号链接不会增加链接数
2、支持对目录创建符号链接,可以跨文件系统
3、删除符号链接文件不影响原文件;但删除原文件,符号指定的路径即不存在,此时会变成无效链接
用法:ln -s 源文件 目标文件或目录
文件系统管理工具:
创建文件系统的工具
mkfs.
mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs
检测及修复文件系统的工具
fsck
fsck.ext2,fsck.ext3,fsck.ext4...
查看其属性的工具
dumpe2fs,tune2fs
调整文件系统特性
tune2fs
比如给刚才的/dev/sdc1分区进行格式化:
Creating journal :表示创建日志系统,除了ext2没有日志系统外,其他都有。
修复/dev/sdc1:
[[email protected] tmp]# fsck.ext4 /dev/sdc1 e2fsck 1.42.9 (28-Dec-2013) /dev/sdc1: clean, 11/65536 files, 12955/262144 blocks
查看/dev/sdc1的属性:
[[email protected] tmp]# tune2fs -l /dev/sdc1 Filesystem volume name: <none> //卷标 Last mounted on: <not available> Filesystem UUID: 4e3f7d63-c957-46de-bc3f-8fa94a0b94be Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl //挂载选项 Filesystem state: clean //文件系统状态 Errors behavior: Continue Filesystem OS type: Linux Inode count: 65536 Block count: 262144 Reserved block count: 13107 //预留的空间 Free blocks: 249189 Free inodes: 65525 First block: 0 Block size: 4096 //超级块大小
lsmod : 查看文件系统加载的内核模块
ext系列文件的专用管理工具:mke2fs
mke2fs [option] device
-t:指明要创建的文件系统类型
-b:指明块大小{1024|2048|4096} 1K,2K,4K
-L:指明卷标;
-j:创建有日志功能的文件系统ext3;
mke2fs -j =mke2fs -t ext3
-i:指明每多少字节创建一个inode。
-N#:指明要给此文件系统创建的多少个inode,#表示个数
-O:指明要加入的特性
mke2fs -O has_journal /dev/sda1 开启日志功能
mke2fs -O ^has_journal /dev/sda1 关闭日志功能
-m#:指定预留空间,百分百:直接数字5
e2lable:查看卷标
e2lable device:查看卷标
e2lable device 名字:修改卷标
e2lable /dev/sdc1 MYDATE
[[email protected] tmp]# e2label /dev/sdc1 mydata [[email protected] tmp]# blkid /dev/sdc1 /dev/sdc1: LABEL="mydata" UUID="4e3f7d63-c957-46de-bc3f-8fa94a0b94be" TYPE="ext4"
blkid:查看系统文件的属性
tune2fs:查看或修改ext文件系统的某些属性 不损害数据
注意:块大小创建后不可修改
tune2fs [option] devices
-l:查看超级块的属性
-j:将ext2升级ext3
-L:设定或修改卷标
-m #:调整预留百分比
-O:[^]特性:调整或关闭某种特性
-o:[^]:开启或关闭某种挂载选项
[[email protected] tmp]# tune2fs -m 5 /dev/sdc1 tune2fs 1.42.9 (28-Dec-2013) Setting reserved blocks percentage to 5% (13107 blocks) Reserved block count: 13107
fsck:用于实现文件系统检测的工具
因进程意外终止或者系统崩溃等,导致操作非正常终止,可能会造成文件损坏,此时,应该检测并修复文件系统,建 议离线进行。
ext系列文件系统的专用工具:
e2fsck: 检测ext2|ext3|ext4
e2fsck [options] devices
-y:对所有问题自动回答‘yes’
-f: 即时文件系统处于clean也检测
fsck:
-t:指定文件系统类型
-a:无须交换自动修复(不建议)
-r:交互式修复
swap文件系统:
Linux上的交换分区必须使用独立的文件系统(独立分区);且文件系统的system ID必须为82;
创建swap设备:mkswap devices
mkswap:
交换分区的启用和禁用:
启用:swapon devices
禁用:swapoff devices
free -m:查看内存
文件系统的使用:
首先要“挂载”:mount命令和umount命令
根文件系统之外的其他文件系统要想能够被访问,都必须通过"关联"至
根文件系统上的某个目录来实现,此关联过程叫挂载;此目录即为‘挂载点’
挂载点上的原文件目录会被隐藏
mount命令: /etc/mtab 记录挂载的信息或者mount或者cat /proc/mounts
命令选项:
-r:只读挂载
-w:读写挂载
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中
加上-n用于禁止此特性
-t:指明要挂载的设备上的文件系统的类型
-L:挂载时以卷标的方式指明设备
-o:指明挂载选项 启用特性
sync/async:同步/异步操作
同步:内存数据写入到磁盘,边读边写,磁盘得一直等待着数据
异步:内存把数据写完,再写入到磁盘中,磁盘无需一直等待
atime/noatime:文件或目录被访问时是否立即更新时间戳/不更新
diratime/nodiratime:目录在访问时是否更新其时间戳
remount:重新挂载
acl:支持使用acl访问列表
dev/nodev:此设备上是否允许创建设备文件
exec/noexec:是否允许运行此设备上的程序文件;
防止此设备程序自动运行
auto/noauto:是否允许自动挂载
user/nouser:是否允许普通用户挂载此文件系统
defaults: Use default options: rw, suid, dev, exec, auto, nouser, and async.
suid/nouid:是否允许程序文件上的suid和sgid特殊权限生效
umount命令:
umount devices |dir
注意:正在被进程访问的挂载点无法被卸载
lsof /mnt :查看挂载点被谁或进程在使用
fuser -v /mnt : 查看挂载点被谁在使用
fuser -km /mnt:把占用的进程终止
挂载本地的回环设备:
mount -o loop /path/to/somefile 挂载点
mount -o loop /root/tty.iso /media
mount -a :可自动挂载定义在fstab文件中的设备
以上是关于Linux磁盘分区和文件管理系统的主要内容,如果未能解决你的问题,请参考以下文章