目录
2、 fdisk /dev/sdb 进行磁盘分区(分区还没有分区号)
Linux文件系统管理
一、Linux文件系统特性:
super block(超级块):记录整个文件系统的信息,包括 block 与 inode 的总量,已经使用的 inode 和 block 的数量,未使用的 inode 和 block 的数量,block 与 inode 的大小,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间等。
date block(数据块,也称作 block):用来实际保存数据的(柜子的隔断),block 的大小(1KB、2KB 或 4KB)和数量在格式化后就已经决定,不能改变,除非重新格式化。每个blcok 只能保存一个文件的数据,要是文件数据小于一个 block 块,那么这个 block 的剩余空间不能被其他文件是要;要是文件数据大于一个 block 块,则占用多个 block 块。
inode(i 节点,标签):用来记录文件的权限(r、w、x),文件的所有者和属组,文件的大小,文件的状态改变时间,文件的最近一次读取时间,文件的最近一次修改时间,文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。
二、linux常见文件系统:
文件 系统 | 描 述 |
ext4 | ext4向下兼容 ext3、最大 1EB 文件系统和 16TB 文件、无限数量子目录、Extents 连续数据块概念、多块分配、延迟分配、持久预分配、快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认用 barrier 等。它是 CentOS6.x 的默认文件系统。 |
xfs | XFS 最早针对 IRIX 操作系统开发,是一个高性能的日志型文件系统,能够在断电以及操作系统崩溃的情况下保证文件系统数据的一致性。它是一个 64 位的文件系统,,目前 CentOS 7.x 将 XFS+LVM 作为默认的文件系统。 |
swap | swap 是 Linux 中用于交换分区的文件系统(类似于 Windows 中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的 2 倍,但是不要超过 2GB,它是 Linux 的必需分区。 |
NFS | NFS 是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源。 |
iso9660 | 光盘的标准文件系统。 |
vfat | 就是 Windows 下的 fat32 文件系统,在 Linux 中识别为 vfat。支持最大 32GB 的分区和最大 4GB 的文件 |
NTFS | 就是 Windows 下的 NTFS 文件系统,不过 Linux 默认是不能识别 NTFS 文件系统的,如果需要识别,则需要重新编译内核才能支持。它比 fat32 文件系统更加安全,速度更快,支持最大 2TB 的分区和最大 64GB 的文件 |
proc | Linux 中基于内存的虚拟文件系统,用来管理内存存储目录/proc |
sysfs | 和 proc 一样,也是基于内存的虚拟文件系统,用来管理内存存储目录/sysfs |
tmpfs | 也是一种基于内存的虚拟文件系统,不过也可以使用 swap 交换分区 |
三、常用的硬盘管理命令:
1、df命令:
[root@localhost ~]# df –ahT
#-a 显示特殊文件系统,这些文件系统几乎都是保存在内存中的。如/proc,因为是挂载在内存中,所以占用量都是 0
#-h 单位不再只用 KB,而是换算成习惯单位
#-T 多出了文件系统类型一列
2、du命令:
[root@localhost ~]# du [选项] [目录或文件名]
选项:
-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如 KB,MB 或 GB 等
-s 统计总占用量,而不列出子目录和子文件的占用量
注意:du 与 df 的区别:du 是用于统计文件大小的,统计的文件大小是准确的;df 是用于统计空间大小的,统计的剩余空间是准确的。
3、fsck 文件系统修复命令
[root@localhost ~]# fsck –y /dev/sdb1
#自动修复
4、显示磁盘状态 dumpe2fs
5、查看文件的详细时间:stat 文件名
6、判断文件类型
#file 文件名 判断文件类型
[root@localhost ~]# file install.log.syslog
install.log.syslog: ASCII text
# type 命令名 判断命令类型
[root@localhost ~]# type cd
cd is a shell builtin
四、fdisk 命令手工分区
1、查看系统所有硬盘及分区
fdisk -l
查看系统所有硬盘及分区
2、 fdisk /dev/sdb 进行磁盘分区(分区还没有分区号)
[root@localhost ~]# fdisk /dev/sdb
# fdisk /dev/sdb 建立分区步骤
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help):
#fdisk交互命令
fdisk交互指令说明
命令 | 说 明 |
a | 设置可引导标记 |
b | 编辑bsd磁盘的标签 |
c | 设置DOS操作系统兼容标记 |
d | 删除一个分区 |
l | 显示系统所有已挂载硬盘 |
m | 显示帮助菜单 |
n | 新建分区 |
o | 建立空白DOS分区表 |
p | 显示分区列表 |
q | 不保存退出 |
s | 新建空白SUN磁盘标签 |
t | 改变一个分区系统ID |
u | 改变显示记录单位 |
v | 验证分区表 |
w | 保存退出 |
x | 附加功能 |
建立分区步骤:
n---p 主----1 分区号----1 起始柱面-----分区大小+n(数字)(G代表你想要的分区的大小)
n---e 扩展---2 分区号----- 起始柱面----结束柱面(所有剩余空间都分配给扩展分区)
n---l 逻辑---不用指定分区号---124 起始柱面(不用分配)----+n(数字)(G代表分区的大小)----w
注意:Linux系统中硬盘1~4分区号是保留下来给主分区和扩展分区使用,逻辑分区不可以占用1-4分区编号。
3、格式化分区、建立文件系统
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdb5
4、建立挂载点、挂载硬盘
5、查看系统已经挂载的分区
#用来查看是否新建硬盘的分区已经挂载
[root@localhost ~]# fdisk -l
[root@localhost ~]# mount
[root@localhost ~]# df -h
6、自动挂载分区
修改分区自动挂载文件:vim /etc/fstab
UUID=332a8e9d-95ba-4183-91e5-893a7fb42bfe /disk5 ext4 defaults 1 2
#采用UUID更安全,更好,因为下面的方式更硬盘后相同的文件名称有可能导致系统崩溃的风险。
/dev/sdb1 /disk1 ext4 defaults 1 2
解释:第一列:设备文件名 第二列:挂载点 第三列:文件系统 第四列:挂载选项
第五列: 1 是否可以被备份 0 不备份 1 每天备份 2不定期备份
第六列: 2 是否检测磁盘 fsck 0 不检测 1 启动时检测 2 启动后检测
查询分区UUID可以用以下命令:
[root@localhost ~]# dumpe2fs /dev/sdb5
#或
[root@localhost ~]# ls -l /dev/disk/by-uuid/
重启测试
如果/etc/fstab/错误,修复步骤如下:
第一步根据提示输入root密码,第二步因为没有写权限,需要用命令:
[root@localhost ~]# mount -o remount,rw /
#获取读写权限
然后重新把分区挂载,现在可以修正/etc/fstab/文件的错误。
六、parted 命令分区
Linux 系统中有两种常见的分区表 MBR 分区表(主引导记录分区表)和 GPT 分区表(GUID 分区表),其中:
MBR 分区表:支持的最大分区是 2TB(1TB=1024GB);最多支持 4 个主分区,或 3 个主分区 1个扩展分区。
GPT 分区表:支持最大 18EB 的分区(1EB=1024PB=1024*1024TB);最多支持 128 个分区,其中 1 个系统保留分区,127 个用户自定义分区。
parted 命令也有点缺点,就是命令只能格式化成 ext2 文件系统,不支持ext3、ext4 文件系统。
1、parted 交互模式命令格式:
[root@localhost ~]# parted /dev/sdb
#划分/dev/sdb 硬盘
parted 交互命令 | 说 明 |
check NUMBER | 做一次简单的文件系统检测 |
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER | 复制文件系统到另外一个分区 |
help [COMMAND] | 显示所有的命令帮助 |
mklabel,mktable LABEL-TYPE | 创建新的磁盘卷标(分区表) |
mkfs NUMBER FS-TYPE | 在分区上建立文件系统 |
mkpart PART-TYPE [FSTYPE] START EN | 创建一个分区 |
mkpartfs PART-TYPE FS-TYPE START END | 创建分区,并建立文件系统 |
move NUMBER START END | 移动分区 |
name NUMBER NAME | 给分区命名 |
print [devices|free|list,all|NUMBER] | 显示分区表,活动设备,空闲空间,所有分区 |
quit | 退出 |
rescue START END | 修复丢失的分区 |
resize NUMBER START END | 修改分区大小 |
rm NUMBER | 删除分区 |
select DEVICE | 选择需要编辑的设备 |
set NUMBER FLAG STATE | 改变分区标记 |
toggle [NUMBER [FLAG]] | 切换分区表的状态 |
unit UNIT | 设置默认的单位 |
Version | 显示版本 |
2 建立分区
查看分区交互命令显示解释:print
(parted) print
#输入 print 指令
Model: VMware, VMware Virtual S (scsi)
#硬盘参数,是虚拟机啊
Disk /dev/sdb: 21.5GB 硬盘大小
Sector size (logical/physical): 512B/512B
#扇区大小
Partition Table: msdos #
分区表类型,就是 MBR 分区表
Number Start End Size Type File system 标志
1 32.3kB 5379MB 5379MB primary
2 5379MB 21.5GB 16.1GB extended
5 5379MB 7534MB 2155MB logical ext4
6 7534MB 9689MB 2155MB logical ext4
#看到1 分区没有格式化,2 分区是扩展分区不能格式化
使用 print 可以查看分区表信息总共七列,分别是:
Number:分区号 Start:分区起始位置 End:分区结束位置 Size:分区大小
Type:分区类型 File system:文件系统类型。 标志:Flags,就是分区的标记。
2.1 修改分区表命令:mkladel gpt
parted) mklabel gpt
#修改分区表命令
警告: 正在使用 /dev/sdb 上的分区。
#由于/dev/sdb 分区已经挂载,所以有警告注意如果强制修改,原有分区及数据会消失
忽略/Ignore/放弃/Cancel? ignore
#输入 ignore 忽略报错
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will
be lost. Do you want to continue?
是/Yes/否/No? yes
#输入 yes
警告: WARNING: the kernel failed to re-read the partition table on /dev/sdb (设备或资源
忙). As a result, it may not reflect all of
your changes until after reboot. #
#下次重启后,才能生效
注意:如果分区没有大于2TB,这步可以不执行,而且一定要把/etc/fstab文件中和原有分区内容删除掉,才能重启动,不要系统启动一定会报错。
2.2 建立文件系统分区命令:mkpart
(parted) mkpart
#输入创建分区命令,后面不要参数,全部靠交互指定
分区名称? []? disk1
#分区名称起名叫 disk1
文件系统类型? [ext2]?
#文件系统类型,直接回车,使用默认 ext2
起始点? 1MB
#分区从 1MB 开始
结束点? 5GB
#分区到 5GB 结束
#分区完成
格式化:
转换分区格式为ext4:
3、分配swap分区:
输入命令:fdisk /dev/sdb——输入交互命令(t)——选择分区——修改分区系统ID(82)——保存w。
[root@localhost ~]# umount /disk1
[root@localhost ~]# fdisk /dev/sdb
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 82
Command (m for help): w
挂载swap分区
[root@localhost ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 20971512 KiB
no label, UUID=89f12e5c-9f15-4ecf-a314-01a0b4039994
挂载激活sawp分区:
[root@localhost ~]# swapon /dev/sdb1
自动挂载sawp分区
内存使用情况:free
语法
free(选项)
选项
-b # 以Byte为单位显示内存使用情况;
-k # 以KB为单位显示内存使用情况;
-m # 以MB为单位显示内存使用情况;
-g # 以GB为单位显示内存使用情况。
-o # 不显示缓冲区调节列;
-s<间隔秒数> # 持续观察内存使用状况;
-t # 显示内存总和列;
-V # 显示版本信息。