挂载管理:
GPT分区机制:
在单个硬盘超过2T时,MBR的分区机制就不行了,要使用GPT这个分区机制
SSD:固态硬盘
电气式硬盘,工作特性很好
分区:fdisk,
格式化:创建文件系统
hdparm
-i 查看磁盘信息
-I
-g 显示磁盘的布局信息
-t 查看磁盘性能
-T
/proc/partitions 分区信息
/proc/meminfo 当前内核内存使用情况
/proc/filesystems 当前内核已经识别的文件系统信息
[root@zhenzhen ~]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev binfmt_misc
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev devpts
nodev ramfs
nodev hugetlbfs
iso9660
nodev pstore
nodev mqueue
ext4
其中的nodev是指没有此设备,也就是说后面的文件系统对应在虚拟化的设备上,可以通过一般的文件系统来使用
要想使用格式化之后的新分区需要把当前分区与根分区上的空闲目录关联起来,作为访问的入口。
内核刚启动时,只装载根文件系统所在的分区
挂载:
手动挂载:
按需挂载:
开机自动挂载:
mount [options] [-t fstype] [-o option] 设备 挂载点
[options]: 命令的选项
-o options: 挂载时启用分区特性
挂载点:原始数据将被暂时隐藏;
挂载点是一个根分区的目录,该目录下的数据文件都会转移到挂载设备上
如果对一个点进行重复挂载的话,则原挂载设备的数据将被暂时隐藏
因此挂载时需要:
1、选项空闲路径;
2、事先得存在;
卸载:
1、空闲时可以被卸载;
我们一般访问的/bin、/usr等目录都是在根分区的文件系统上,如果挂载其他设备时,需要在根下新建一个目录如/mydata,便可进行挂载
mount: 直接使用,可显示当前系统所有已挂载的设备
[root@zhenzhen ~]# mount
/dev/mapper/vg_steiss-lv_root on / type ext4 (rw)
设备名称 on(挂载) /是挂载到哪里 类型ext4 挂载特性(rw读写)
proc on /proc type proc (rw)
虚拟设备的话就如proc等 后面一样
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
这个表示sda1这个分区挂载到/boot目录下
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
该信息是从/proc/mounts中获取的,里面是当前挂载信息,proc是内核的当前相关信息
/proc/mounts 内核当前维持的挂载信息
/etc/mtab 挂载表,也是用于追踪当前挂载设备的文件
常用选项:
-t fstype
-r: 只读挂载
-w: 读写
-L lable: 以卷标指定, LABLE=“label”
mount -L mydata /mydata 将卷标为mydata的分区挂载到/mydata下
-U UUID:以UUID指定挂载设备,UUID=“UUID”
-a: 自动挂载所有(/etc/fstab文件中)支持自动挂载的设备
如果把当前/dev/sda3挂载到/mydata下,把一些文件放入到mydata目录下,则文件信息和文件数据则进入到该设备中,卸载后,在mydata目录下就无法找到这些文件了。如果又一次把这个设备挂载到其他目录下,则以前放入的文件则还是会找到。你把哪个设备挂载到哪,则该设备下的文件就会映射到挂载点的目录下,我们就可以通过该点访问到。
在根目录下新建一个目录,就可以把其他分区进行挂载。
对磁盘的分区和格式化后,也就是对磁盘对应的设备文件进行设置,然后让内核去识别和处理这些磁盘分区的操作。
-o options(设定挂载属性的选项) 可以man mount查看,有多个选项的话中间使用逗号隔开
async: 异步I/O,数据的写入操作会现在内存操作,然后再写入磁盘,这样是为了提高性能
sync: 同步I/O,可靠性有,但性能低
noatime/atime: 建议noatime,不更新文件访问的时间戳
auto/noauto: 是否能够被mount -a选项自动挂载;
diratime/nodiratime: 是否更新目录的访问时间戳;
exec/noexec:是否允许执行其中的二进制程序;
_netdev: 有时会在fstab中指定自动挂载的设备,如果是个网络设备,但是网络没有启动,则会挂载失败并一直尝试,若使用该条选项,则在
无网络时,就会停止,直到网络恢复。
remount: 重新挂载
mount -o remount,ro /dev/sda3 重新挂载时可只单一指定挂载点
acl: 启用facl(文件访问控制列表)
若不指定-o选项,则使用如下默认属性
defaults
Use default options: rw(读写), suid, dev(允许使用设备文件), exec(允许二进制执行), auto(允许完成自动挂载), nouser, async, and relatime(实时).
# tune2fs -o mount-option 设备 可以设置设备的挂载默认属性
# tune2fs -o ^mount-option 取消 可以取消设备的挂载默认属性
光盘:也是设备文件,内核识别为/dev/cdrom这个设备文件,可以进行挂载,挂载时文件系统类型为iso9660
/dev/cdrom, /dev/dvd, /dev/sr0
[-t iso9660]
查看占用挂载的设备的进程:
fuser -v 挂载点 查看该挂载点当前由哪些用户进程在访问
fuser -km 挂载点 可将访问该设备的进程杀掉
umount 设备|挂载点
df: 磁盘空间使用状态报告,直接使用是查看数据
-h: human-readable
-i: inode 查看inode的使用情况
-P: POSIX
df [options] [device]
[root@zhenzhen boot]# df -h /sbin 这个指令可以查看当前文件在哪个分区上
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_steiss-lv_root 6.7G 837M 5.5G 14% /
du: 评估文件占用磁盘空间的情况
-s
-h
开机自动挂载:
/etc/rc.d/rc.sysinit:系统初始化脚本
其中一个功能:挂载/etc/fstab文件中定义的文件系统挂载表
#
# /etc/fstab
# Created by anaconda on Wed Feb 12 09:48:07 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg0-root / ext4 defaults 1 1
UUID=958ea5da-eafc-4311-8609-1e97fe11e6f9 /boot ext4 defaults 1 2
/dev/mapper/vg0-usr /usr ext4 defaults 1 2
/dev/mapper/vg0-var /var ext4 defaults 1 2
/dev/mapper/vg0-swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
系统刚启动时,只会将根分区挂载到根上,然后再挂载其他的,这里的根分区是逻辑卷/dev/mapper/vg0-root ,方便管理
根分区是由逻辑卷来管理的
sda1分区挂载到/boot下,用来存储内核
要挂载的设备:设备文件、LABEL=, UUID=
挂载点:swap没有挂载点,挂载点为swap
文件系统类型
挂载选项:多个选项间使用逗号分隔;
转储频率:
0:从不备份
1:每日备份
2:
自检次序:
0: 不自检
1:首先自检,通常只能被/使用;
2:
交换分区:
Linux使用内存机制:/proc/sys/vm/swapiness
多大为好:
物理内存在2G至4G之间,可设置4G交换分区
物理内存小于2G,设置2*物理内存
大于8G,设置4G可以
mkswap(对某一逻辑分区可设为交换分区), swapon, swapoff
查看内存空间使用状态:
# cat /proc/meminfo
# free
-m: 显示结果以MB为单位
-g: 显示结果以GB为单位
[root@zhenzhen boot]# free -m
total used free shared buffers cached
Mem: 1006 350 655 0 89 222
-/+ buffers/cache: 39 966
Swap: 815 0 815
注意:buffers是缓冲,提高写性能的;cached是缓存,提高读性能的
dd命令:能复制,能对文件系统做检测,还能创建回环设备
dd if=input_file of=output_file 复制 更低级别的复制指令,绕过文件系统,直接复制文件块
dd if=input_file of=output_file bs=#[b|k|m|g] count=#
bs可以指定一次复制多大,count指定复制进行多少次,这也得bs复制几次
dd if=/dev/cdrom of=/tmp/linux.iso
cat /dev/cdrom > /tmp/linux.iso
以上两个命令可以制作镜像
dd if=/dev/sda of=/tmp/myfile bs=512 count=1
一个硬盘的前512个字节是指MBR,可以备份MBR
dd if=/dev/zero of=/dev/sdb bs=500 count=1
/dev/zero 这个是需要多少0就会吐出多少0
/dev/null
总结:mount, umount, fuser, free, du, df, dd