文件系统常用命令与fdisk分区
一、硬盘结构
1、硬盘的逻辑结构

硬盘的大小是使用“磁头数×柱面数×扇区数×每个扇区的大小”这样的公式来计算的。其中磁头数(Heads)表示硬盘总共有几个磁头,也可以理解成为硬盘有几个盘面,然后乘以二;柱面数 (Cylinders)表示硬盘每一面盘片有几条磁道;扇区数(Sectors)表示每条磁道上有几个扇区;每个扇区的大小一般为 512Byte。扇区也是磁盘的最小存贮单位。
2、硬盘接口
- IDE 硬盘接口(Integrated Drive Electronics,并口,即电子集成驱动器)也称作“ATA 硬盘” 或“PATA 硬盘”,是早期机械硬盘的主要接口,ATA133 硬盘的理论速度可以达到 133MB/s (此速度为理论平均值)。
- SATA 接口(Serial ATA,串口)是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是 SATA 三代,理论传输速度达到 600MB/s(此速度为理论平均值)
- SCSI 接口(Small Computer System Interface,小型计算机系统接口)广泛应用在服务器上, 具有应用范围广、多任务、带宽大、CPU 占用率低及支持热插拔等优点,理论传输速度达到 320MB/s
二、linux文件系统
1. Linux 文件系统的特性
- super block(超级块):记录整个文件系统的信息,包括 block 与 inode 的总量,已经使用的 inode 和 block 的数量,未使用的 inode 和 block 的数量,block 与 inode 的大小,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间等。
- date block(数据块,也称作 block):用来实际保存数据的,block 的大小(1KB、2KB 或 4KB)和数量在格式化后就已经决定,不能改变,除非重新格式化。每个 blcok 只能保存一个文件的数据,要是文件数据小于一个 block 块,那么这个 block 的剩余空间不能被其他文件使用,要是文件数据大于一个 block 块,则占用多个 block 块。Windows 中磁盘碎片整理 工具的原理就是把一个文件占用的多个 block 块尽量整理到一起,这样可以加快读写速度。
- inode:用来记录文件的权限(r、w、x),文件的所有者和属 组,文件的大小,文件的状态改变时间(ctime),文件的最近一次读取时间(atime),文件的最近一次修改时间(mtime),文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。
2、常见文件系统
| 文件系统 | 简介 |
|---|---|
| ext | Linux 中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用 |
| ext2 | 是 ext 文件系统的升级版本,Red Hat Linux 7.2 版本以前的系统默认都是 ext2 文件 系统。于 1993 年发布,支持最大 16TB 的分区和最大 2TB 的文件 (1TB=1024GB=1024×1024KB) |
| ext3 | 是 ext2 文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时 提高文件系统的可靠性。支持最大 16TB 的分区和最大 2TB 的文件 |
| ext4 | 是 ext3 文件系统的升级版。ext4 在性能、伸缩性和可靠性方面进行了大量改进。ext4 的变化可以说是翻天覆地的,比如向下兼容 ext3、最大 1EB 文件系统和 16TB 文件、无 限数量子目录、Extents 连续数据块概念、多块分配、延迟分配、持久预分配、快速 FSCK、 日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等。它是 CentOS 6.x 的默认文件系统 |
| xfs | XFS 最早针对 IRIX 操作系统开发,是一个高性能的日志型文件系统,能够在断电以及 操作系统崩溃的情况下保证文件系统数据的一致性。它是一个 64 位的文件系统,后来 进行开源并且移植到了 Linux 操作系统中,目前 CentOS 7.x 将 XFS+LVM 作为默认的文 件系统。据官方所称,XFS 对于大文件的读写性能较好。 |
| swap | swap 是 Linux 中用于交换分区的文件系统(类似于 Windows 中的虚拟内存),当内存 不够用时,使用交换分区暂时替代内存。一般大小为内存的 2 倍,但是不要超过 2GB。 它是 Linux 的必需分区 |
| NFS | NFS 是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件 共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源 |
| iso9660 | 光盘的标准文件系统。Linux 要想使用光盘,必须支持 iso9660 文件系统 |
| fat | 就是 Windows 下的 fat16 文件系统,在 Linux 中识别为 fat |
| vfat | 就是 Windows 下的 fat32 文件系统,在 Linux 中识别为 vfat。支持最大 32GB 的分区 和最大 4GB 的文件 |
| NTFS | 就是 Windows 下的 NTFS 文件系统,不过 Linux 默认是不能识别 NTFS 文件系统的,如 果需要识别,则需要重新编译内核才能支持。它比 fat32 文件系统更加安全,速度更快, 支持最大 2TB 的分区和最大 64GB 的文件 |
| proc | Linux 中基于内存的虚拟文件系统,用来管理内存存储目录/proc |
| sysfs | 和 proc 一样,也是基于内存的虚拟文件系统,用来管理内存存储目录/sysfs |
| tmpfs | 也是一种基于内存的虚拟文件系统,不过也可以使用 swap 交换分区 |
三、常用的硬盘管理命令
df 查看分区的使用情况
[root@centos ~]# df -h
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root ext4 18G 1.9G 15G 12% /
tmpfs tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 ext4 477M 34M 418M 8% /boot
2、du 统计文件大小
[root@centos ~]# du -h #统计当前文件大小
76K .
3、fsck 文件系统修复命令
[root@centos ~]# fsck -y /dev/sda1 #自动修复/dev/sda1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda1 is mounted.
e2fsck: Cannot continue, aborting.
4、dumpe2fs 显示磁盘状态
[root@centos ~]# dumpe2fs /dev/mapper/vg_centos-lv_root -h
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name: <none> # 卷标名
Last mounted on: / # 挂载目录
Filesystem UUID: 92e4492e-b1a7-4e8b-a82f-09ba6afedc08
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 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: 1152816 # inode数量
Block count: 4605952 # block 数量
Reserved block count: 230297
Free blocks: 4027007 # 可使用的block块
Free inodes: 1096540 # 可使用de inode
First block: 0
Block size: 4096 # 一个block数量4096bytes
Fragment size: 4096
......
5、查看文件的详细信息
[root@centos ~]# stat 123.txt
File: `123.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
#文件大小 占用块 系统分区块大小
Device: fd00h/64768d Inode: 924444 Links: 1
#存放文件的设备 inode 号 硬链接数
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
权限 属主 属组
Access: 2019-12-03 10:34:25.644828377 +0800 #访问时间
Modify: 2019-12-03 10:34:25.644828377 +0800 #文件数据修改时间
Change: 2019-12-03 10:34:25.644828377 +0800 #文件状态修改时间
6、判断文件类型
file 文件名 判断文件类型
type 命令名 判断命令类型
四、fdisk 命令手工分区
1 fdisk -l 查看系统所有硬盘及分区
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
.....
2、使用fdisk手工分区,首先需要准备一块新硬盘,虚拟机直接添加即可。
1)进入分区界面
fdisk /dev/sdb
输入 m 获取帮助
a toggle a bootable flag 设置可引导标记
b edit bsd disklabel 编辑 bsd 磁盘标签
c toggle the dos compatibility flag 设置 DOS 操作系统兼容标记
d delete a partition 删除分区
l list known partition types 打印出已有分区类型
m print this menu
n add a new partition 添加分区
o create a new empty DOS partition table 创建dos分区表
p print the partition table 打印分区列表
q quit without saving changes 离开不保存修改
s create a new empty Sun disklabel 新建空白 SUN 磁盘标签
t change a partition's system id 改变一个分区的系统 ID
u change display/entry units 改变显示记录单位
v verify the partition table 验证分区表
w write table to disk and exit 写入分区信息,且退出
x extra functionality (experts only) 附加功能
2)简单分区
# 建立一个主分区
Command (m for help): n #创建新分区
Command action
e extended
p primary partition (1-4)
p #创建分区类型 主分区,或者扩展分区。主分区+扩展分区一共只能有4个。
Partition number (1-4): 1 #选择分区号,这里选择了1,所以该分区名为:sdb1
First cylinder (1-2610, default 1): #起始柱面,默认就行
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G #指定分区大小,这里为2G,不带单位为柱面数。
Command (m for help): p #此时在打印分区信息,就可以看到已经分好了的sdb1
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x65072461
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
建立扩展分区
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (263-2610, default 263):
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): #不输入,默认到最后一个柱面,也就是使用全部剩余空间。
Using default value 2610
扩展分区建立完成后不能使用,还需要在扩展分区内建立逻辑分区。
我们来建立逻辑分区,逻辑分区会自动分配id,无需手动输入
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (263-2610, default 263):
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): +5G
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa080c4f9
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb2 263 2610 18860310 5 Extended
/dev/sdb5 263 916 5253223+ 83 Linux
按 w 保存退出
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
3 partprobe 强制重读所有分区文件,重新挂载分区文件内所有分区。
这不是分区必须命令,如果没有提示重启,可以不执行,也可以重启系统。
4 格式化
建立文件系统 ext3 是 linux 默认文件系统
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdb5
mkfs 命令非常简单易用,不过是不能调整分区的默认参数的(比如块大小是 4096),这些默认 参数除非特殊情况,否则不需要调整,如果想要调整就需要使用 mke2fs 命令进行重新格式化,
命令 格式如下: [root@localhost ~]# mke2fs [选项] 分区设备文件名
选项:
-t 文件系统: 指定格式化成哪个文件系统,如 ext2,ext3,ext4
-b 字节: 指定 block 块的大小
-i 字节: 指定“字节/inode”的比例,也就是多少个字节分配一个 inode
-j: 建立带有 ext3 日志功能的文件系统
-L 卷标名: 给文件系统设置卷标名,就不使用 e2label 命令设定了
举个例子:
[root@centos ~]# mke2fs -t ext4 -b 4096 /dev/sdb5 # 格式化分区,并指定 block 的大小为 4096字节
5 建立挂载点
linux,只有当分区被挂载才能被使用
[root@centos ~]# mkdir /mnt/sdb1
[root@centos ~]# mkdir /mnt/sdb5
6 挂载
mount /dev/sdb1 /mnt/sdb1
mount /dev/sdb5 /mnt/sdb5
7 查看
[root@centos ~]# cd /mnt/sdb1
[root@centos sdb1]# df . -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 2.0G 3.1M 1.9G 1% /mnt/sdb1
8 自动挂载
修改分区自动挂载文件 vim /etc/fstab
/dev/sdb1 /mnt/sdb1 ext4 defaults 1 2
第一列: 设备文件名
第二列 挂载点
第三列 文件系统
第四列 挂载选项
第五列 是否可以被备份 0 不备份 1 每天备份 2 不定期备份
第六列 是否检测磁盘 fsck 0 不检测 1 启动时检测 2 启动后检测
9 测试
重启测试
或者使用 mount -a 重新自动挂载fstab内未挂在设备。
五、手动swap分区
1、并修改为 swap 分区 ID
# 新建一个主分区。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +1G
Command (m for help): t #更改分区类型
Selected partition 1 #选择分区
Hex code (type L to list codes): 82 # 类型id,这里82对应swap类型分区
Changed system type of partition 1 to 82 (Linux swap / Solaris)
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 82 Linux swap / Solaris
2、格式化
[root@centos ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 1060252 KiB
no label, UUID=e210e3c6-9ad7-4b33-88b3-74234159c794
3、使用 swap 分区
#先查看系统swap分区大小
[root@centos ~]# free -h
total used free shared buffers cached
Mem: 474M 140M 333M 236K 11M 46M
-/+ buffers/cache: 83M 391M
Swap: 1.9G 0B 1.9G
#启动我们刚才添加的分区
[root@centos ~]# swapon /dev/sdb1
#再次查看
[root@centos ~]# free -h
total used free shared buffers cached
Mem: 474M 141M 333M 236K 11M 46M
-/+ buffers/cache: 83M 390M
Swap: 2.9G 0B 2.9G
4、取消使用
[root@centos ~]# swapoff /dev/sdb1
5、自动挂载
[root@centos ~]# vim /etc/fstab
/dev/sdb1 swap swap defaults 0 0
文件系统常用命令与fdisk分区的更多相关文章
- Linux学习之文件系统常用命令(七)
Linux文件系统常用命令 目录 df命令 du命令 fsck命令 dump2fs命令 df命令 df命令 统计文件系统的占有情况,分区用了多少空间,还剩多少空间 df [选项] [挂载点] 选项: ...
- Linux常用命令:fdisk mkfs mount umount fstab实现自动挂载
写在前 记录点常用命令,fdisk mkfs mount和umount,以及fstab实现自动挂载 fdisk fdisk主要用于操作硬盘的分区表.分区,下面简单记一点最常用的部分 查看当前系统识别到 ...
- Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令
通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...
- Linux学习 - 文件系统常用命令
一.文件系统查看命令df df [选项] [挂载点] -a 查看所有文件系统信息,包括特殊文件系统 -h 使用习惯单位显示容量 -T 显示文件系统类型 -m 以MB为单位显示容量 -k 以KB为单位显 ...
- Linux 文件系统常用命令
文件系统查看命令df df:查看分区,单位默认是KB df -h 统计目录或文件大小du du /etc/:会列出/etc/目录下的所有子目录所占的空间,最后给出/etc/目录的大小,属于高负载命令, ...
- Shell命令_文件系统常用命令df、du
一.df(文件系统查看命令) [root@localhost ~]# df [选项] [挂载点] 选项: -a 显示所有的文件系统信息,包括特殊文件系统,如 /proc. /sysfs -h 使用习惯 ...
- linux笔记:文件系统管理-分区、文件系统以及文件系统常用命令
linux分区类型: linux文件系统: df(查看文件系统容量和占用): du(统计文件或目录大小): 查询和自动挂载: 挂载命令格式: 挂载光盘: 卸载光盘: 挂载U盘:
- 文件系统常用命令df、du、fsck、dumpe2fs
df 查看文件系统 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda5 16558080 1337676 15220404 9% / de ...
- Linux命令-文件系统常用命令:df,du,fsck,dumpe2fs
df -h 人性化显示文件系统的分区信息 注意:在linux中目录也是文件,不要混淆下面的目录文件说法. 传统方式查看文件大小可以使用:ll -h /目录/文件名,就可以看到文件的大小,但是如果你想看 ...
随机推荐
- .NET进阶篇06-async异步、thread多线程4
知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 梯子 一.锁1.lock2.Interlocked3.Monitor4.SpinLock5.Mutex6.Semaphore7.Events1. ...
- python中68个内置函数的总结
内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # ...
- SwiftyUserDefaults-封装系统本地化的框架推荐
// // ViewController.swift // Test4SwiftyUserDefaults // Copyright © 2017年. All rights reserved. // ...
- zz:NETCONF协议详解
随着SDN的大热,一个诞生了十年之久的协议焕发了第二春,它就是NETCONF协议.如果你在两年前去搜索NETCONF协议,基本得到的信息都是"这个协议是一个网管协议,主要目的是弥补SNMP协 ...
- 转:Eclipse中创建Maven版的Web工程(详解)
一.搭建步骤 ♦首先创建一个Maven的Project,如下图: ♦点击Next,勾选 Create a simple project ♦点击Next,注意Packing要选择war,因为我们创建的是 ...
- MySQL必知必会(数据分组,Group by和Having子句, Select子句的顺序)
SELECT vend_id, COUNT(*) AS num_prods FROM products #GROUP BY子句可以包含任意数目的列,多行NULL值将分为一组 GROUP BY vend ...
- 登录oracle数据库
1.windows (cmd)命令行登录: 下载命令行工具 点击这里进入官网下载,下载其中三个文件 instantclient-basic-windows.x64-19.3.0.0.0dbru.zip ...
- iOS全局处理键盘事件
转自:http://www.cnblogs.com/xinus/archive/2013/01/22/ios-keybord-notification.html 注册监听键盘事件的通知 [[NSNot ...
- 牛客剑指offer(持续更新~)
第一题:二维数组的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...
- B. Magic Stick
题目:魔法棒 题意:可以对一个正数进行变换,如果数字是偶数,那么它可以变成3 * a / 2 如果这个数大于1,那么它可以变成a - 1 有两个数x和y,询问是否可以通过这些操作从x变成y,输出YES ...