CHS cylinder-head-sector
cylinder柱面=track*head=512*63*256=8M
磁盘分区
为什么是分区?
• 优化I/O 性能
• 实现磁盘空间配额限制
• 提高修复速度
• 隔离系统和程序
• 安装多个OS
• 采用不同文件系统
MBR:使用32位表示扇区数量,按每扇区512字节计算,每个分区最大不能超过2TB
(Globals Unique Identifiers Partition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。GPT支持128个分区,使用128 位UUID 区 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC 校验位
EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域
管理分区
列出块设备 lsblk
创建分区使用:
fdisk创建MBR 分区,也支持GPT ,对于一块硬盘,最多只能管理15分区
gdisk创建GPT 分区
GNU parted 高级分区操作(创建、复制、调整大小等等)
partprobe-重新设置内存中的内核分区表版本
centos7
fdisk -l -u=cylinders /dev/sda //以柱面显示
fdisk -l /dev/sda //以扇区显示
echo "- – -" > /sys/class/scsi_host/host2/scan //不重启,识别到新加硬盘
hexdump -C -n 512 /dev/sda //查看头文件
(1)
dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512 //备份头文件
hexdump -v -C /testdir/mbrbak //显示同(1)说明备份成功
dd if=/testdir/mbrbak of=/dev/sdb //恢复分区表
fdisk -l /dev/sdb //分区信息同/dev/sda
dd if=/dev/zero of=/dev/sdb bs=1 count=446 //破坏/dev/sdd前446个字节
hexdump -C -n 512 /dev/sdb //检查发现头文件的前部分被0填充
dd if=/dev/zero of=/dev/sdb bs=1 count=2 skip=510 seek=510 //清掉最后的两字节55A,标志位
fdisk -l /dev/sdb 无分区信息
fdisk /dev/sdb
子命令:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
w 保存并退出
q 不保存并推出
查看内核是否已经识别新的分区
通知内核重新读取硬盘分区表
新增分区用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用
partx -d -n M:N /dev/DEVICE
centos 6: –nr N-M //specify the range of partitions
centos 5,7: 使用partprobe
partprobe [/dev/DEVICE]
parted 的操作都是实时生效的
用法:parted [ 选项]… [设备 [令 命令 [ 参数]…]…]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1
parted -l
也可parted device 进入交互式界面操作
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组 织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修 改、转储文件,控制文件的存取,安全控制,日志,压缩, 加密等。
文件系统类型
Linux 文件系统: ext2(Extended file system), ext3/4, xfs(SGI公司), btrfs(Oracle), reiserfs, jfs(AIX ), swap
光盘:iso9660
Windows :fat32, ntfs
Unix: FFS (fast ), UFS (unix ), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2 (oracle)
分布式文件系统:ceph, moosefs, mogilefs, glusterfs, Lustre
RAW: 未经处理或者未经格式化产生的文件系统
根据其是否支持"journal" 功能:
日志型文件系统: ext3, ext4, xfs, …
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux 的虚拟文件系统:VFS
查前支持的文件系统:cat /proc/filesystems
lsmod //查看加载的模块
lsmod|grep xfs
VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层
在Linux下,通过VFS,一个抽象的通用访问接口屏蔽了底层文件系统和物理介质的差异性
Linux硬盘组织方式为:引导区、超级块(superblock),索引结点(inode),数据块(datablock),目录块(diredtory block).其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等;超级块后面的数据结构是索引结点,它包含了针对某一个具体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置.但是索引结点中不包括文件的名字,文件名是放在目录块里的.目录块里包含有文件的名字以及此文件的索引结点编号.
创建文件系统
mkfs.FS_TYPE /dev/DEVICE
ext4|xfs|btrfs|vfat
mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 设定卷标
mke2fs :ext 系列文件系统专用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j: 相当于 -t ext3 //journal 日志
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 为数据空间中每多少个字节创建一个inode ;此大 小不应该小于block 的大小
-N # :为数据空间创建个多少个 个inode
-I 一个inode 记录大小128—4096
-m #: 默认5%, 为管理人员预留空间占总空间的百分比
mkfs.ext4 -m 1 /dev/sdb1 //调为1%
-O FEATURE[,…] :启用指定特性
-O ^FEATURE
-f:强制转为xfs文件系统
文件系统标签
blkid :块设备属性信息查看
blkid [OPTION]… [DEVICE]
-U UUID: 根据指定的UUID 来查找对应的设备
-L LABEL :根据指定的LABEL 来查找对应的设备
根据/etc/fstab中/boot目录的UUID查找对应的设备
blkid -U `sed -nr "s/UUID=(.*) \/boot.*/\1/p" /etc/fstab` 或
blkid -U `cat /etc/fstab |grep boot|cut -d' ' -f1|cut -c6-`
e2label :管理ext 系列文件系统的LABEL
e2label DEVICE [LABEL]
findfs :查找分区
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
tune2fs :重新设定ext 系列文件系统可调整参数的值
-l :查看指定文件系统超级块信息;super block
-L 'LABEL' :修改卷标
-m # :修预留给管理员的空间百分比
-j: 将ext2 升级为ext3
-O: 文件系统属性启用或禁用,
tune2fs -O ^has_journal /dev/sdb1 //取消日志
tune2fs -l /dev/sdb1 看不到has_journal ,blkid 看到/dev/sdb1 无TYPE="ext3")
-o: 调整文件系统的默认挂载选项,–o ^acl
-U UUID: 修改UUID号
xfs系统用tune2fs -l查看无效
vfat系统不区分大小写,权限755,不受umask管制,不安全
dumpe2fs:
-h :查看超级块信息(分组信息),分区用分组管理
dumpe2fs /dev/sdb1
文件系统检测和修复:
常发生于死机或者非正常关机之后
挂载为文件系统标记为“dirty” ”
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自动修复错误
-r: 交互式修复错误
注意: FS_TYPE 一定要与分区上已经文件类型相同
e2fsck :ext 系列文件专用的检测修复工具
-y:自动回答为yes
-f :强制修复
mke2fs -t ext4 /dev/sdb3
dd if=/dev/zero of=/dev/sdb3 bs=1k count=10 //破坏超级块
tune2fs -l /dev/sdb3 显示bad magic number
e2fsck /dev/sdb3 //修复得在非挂载情况下进行,否则容易造成破坏
fuser -km /mnt/sdb2 //kill,换成根自杀
挂载:将额外文件系统与根文件系统某现存的目录建立关联,进而使得此目录做为其它文件访问入口的行为
用mount命令挂载文件系统 mount DEVICE MOUNT_POINT
mount :通过查看/etc/mtab
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device :指明要挂载的设备;
(1)设备文件
(2)卷标:-L 'LABEL'
(3)UUID, -U 'UUID'
(4)伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir :挂载点
事先存在;建议使用空目录
进程正在使用中的设备无法被卸载
常用选项:
-t vsftype :指定要挂载的设备上的文件系统类型
-r: readonly ,只读挂载
-w: read and write, 读写挂载
-n: 不更新/etc/mtab ,相当于#mount
-a:自动挂载所有支持自动挂载的设备( 定义在了/etc/fstab 文件中,且挂载选项中有auto功能)
-B, –bind: 绑定目录到另一个目录上
mount -B /boot/ /mnt/boot //两个目录都看到一致的内容,因为是同样的文件
-o options :( 挂载文件系统的选项) ,多个选项使用逗号分隔
async :异步模式
sync :同步模式, 内存更改时,同时写磁盘
mount -o sync /dev/sdb1 /mnt/sdb1
atime/noatime :包含目录和文件
diratime/nodiratime :目录的访问时间戳
auto/noauto :是否支持自动挂载, 是否支持-a 选项
exec/noexec :是否支持将文件系统上运行应用程序
dev/nodev :是否支持在此文件系统上使用设备文件
suid/nosuid :是否支持suid 和sgid 权限
remount :重新挂载
mount -o,remount,noexec /mnt/sdb1
ro :只读
rw:读写
user/nouser :是否允许普通用户挂载此设备,默认管理员才能挂载
acl :启用此文件系统上的acl 功能
Defaults :相当于rw, suid, dev, exec, auto, nouser, async
mknod cdrom b 11 0 ////生成cdrom这个设备
mount ./cdrom /mnt/boot
cd /mnt/boot 可以访问光盘内容
centos7
yum install autofs
systemctl start autofs
根目录下出现misc目录
cd /misc
cd cd //挂载光盘
原创文章,作者:victorycommander,如若转载,请注明出处:http://www.178linux.com/41587