Linux入门
Linux系统管理:
磁盘管理、文件系统管理
RAID基本原理、LVM2
网络管理:TCP/IP协议、Linux网络属性配置
程序包管理:rpm,yum
进程管理:htop,glance,tsar等
sed和awk
Linux系统开机流程
内核管理基础知识:编译内核、模块
Linux系统裁剪
kernel+busybox
课外作业:LFS
Linx磁盘管理
I/O ports:I/O设备地址;
一切皆文件:
open(),read(),write(),close()
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘
设备文件:关联至一个设备驱动程序,进而能够与之对应硬件设备进行通信; 注:设备文件是特殊类型的文件,只有元数据,没有数据。
主设备号:major number,标识设备类型
次设备号:minor number,标识同一类型下的不同设备
# 可通过ll /dev/查看设备文件,前面一个为主设备号,后面一个为次设备号。
硬盘接口类型:
并行:
IDE:133MB/s
SCSI:640MB/s
串口:
STAT:6Gbps
SAS:6Gbps
USB:480MB/s
rpm:rotations per minute 每分钟转的圈数
/dev/DEV_FILE
磁盘设备的设备文件命名;
IDE:/dev/hd
SCSI,SATA,SAS,USB:/dev/sd
不同设备:a-z
/dev/sda,/dev/sdb,...
同一设备上的不同分区:1,2,...
/dev/sda1,/dev/sda5
机械式硬盘:
track:磁道
cylinder:柱面
secotr:扇区
512bytes
如何分区:
按柱面
0磁道0扇区:512bytes
MBR:Master Boot Record 主引导记录
446bytes:boot loader 引导加载器,是一个程序
64bytes:分区表
16bytes:标识一个分区,每16个字节标识一个分区,所以一块磁盘最多只能出现4个分区。
2bytes:55AA 代表前面520个字节是有效的。
4个主分区:
4个主分区
3主分区+1扩展分区(N个逻辑分区)
逻辑分区,从5开始编号
问题:UEFI,GPT?
分区管理工具:fdisk,parted,sfdisk
fdisk:对于一块硬盘来讲,最多只能管理15分区;
# fdisk -l [-u] [device...] 列出所有或指定磁盘设备分区信息
boot:表示该分区是否可引导,*号表示该分区可引导。
其它解析依次是:起始柱面、结束柱面、包含的磁盘块数、分区标识、应用在哪个系统上常用的分区标识。
sda1的结束柱面和sda2的开始柱面是同一柱面,这个是不允许的,所以有了Partition 1 does not end on cylinder boundary.提示
# fdisk device
子命令:管理功能
p:print,显示已有分区;
n:new,创建
d:delete,删除
w:write,写入磁盘并退出
q:quit,放弃更新并退出
m:获取帮助
l:列表所分区id # 显示分区类型以及id,用t设置的时候可能会用到
t:调整分区id
查看内核是否已经识别新的分区:只有识别了才能做进一步操作。
# cat /proc/partations
通知内核重新读取硬盘分区表:
partx -a /dev/DEVICE
-n M:N
kpartx -a /dev/DEVICE
-f:force
Centos 5:使用partprobe
partprobe [/dev /DEVICE]
Linux文件系统管理:
Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap
swap:交换分区
光盘:iso9660
Windows:fat32,ntfs
Unix:FFS,UFS,JFS2
网络文件系统:NFS,CIFS
集群文件系统:GFS2,OCFS2
分布式文件系统:ceph
moosefs,mogilefs,GlusterFS,Lustre
根据其否支持“journal”功能:日志型就是多了一个日志区域,元数据先放在日志区域,等传完了,再把元数据挪到元数据区域,这样如果中途断电了,开机只需要检查日志区域就可以了,提高了检查效率。
日志型 文件系统:ext3,ext4,xfs,...
非日志型 文件系统:ext2,vfat
文件系统的组成部分:
内核中的模块:ext4,xfs,vfat
用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
创建文件系统:想要创建文件系统内核必须支持,另外还要有用户空间的管理工具。使用用户空间管理工具调用内核模块功能来实现文件系统管理功能。
cat /proc/filesystems 查看系统支持的文件系统。
lsmod 查看内核中装载的模块,任何一个文件系统想要使用,内核中必须装载相应的模块。
mkfs命令:格式化完成后可以使用blkid查看设备的属性信息,如UUID,文件系统类型、卷标。
(1)# mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) # mkfs -t FS_TYPE /dev/DEVICE 其实指定类型后调用的就是上面那些命令
-L 'LABEL':设定卷标,将来可以使用卷标对这个分区执行调用操作。
mke2fs:ext系统文件系统专用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL’
-j:相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #:为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小;inode就是源数据。
-N #:为数据空间创建个多少个inode;
-m #:为管理人员预留的空间占据的百分比;
-O FEATRUE [,...]:启用指定特性
-O ^FEATURE:关闭指定特性
mkswap:创建交换分区
mkswap [options] device
-L ‘LABEL’
前提:调整其分区的ID为82
其它常用工具:
blkid:块设备属性信息查看
blkid [OPTION]...[DEVICE]mkswap [-c] [-f] [-p PSZ] [-L label] [-U uuid] device
-U UUID:根据指定的UUID来查找对应的设备,UUID为全局唯一标识符
-L LABEL:根据指定的LABEL来查找对应的设备 例:blkid -L 'mydata'
e2label:管理ext系统文件系统的LABEL
# e2label DEVICE [LABEL] 用来查看或设置分区卷标
tune2fs:重新设定ext系统文件系统可调整参数的值
-l:查看指定文件系统超级块信息:super block
-L ‘LABEL':修改卷标
-m #:修改预留给管理员的空间百分比
-j:将ext2升级为ext3
-O:文件系统属性启用或禁用
-o:调整文件系统的默认挂载选项
-U UUID:修改UUID号;
dumpe2fs:后面直接加设备查看是块组信息。
-h:查看超级块信息
文件系统检测:
fsck:File System Check
fsck.FS_TYPE
fs -t FS_TYPE
-a:自动修复错误
-r:交互式修复错误
Note:FS_TYPE一定要与分区上已有文件类型相同;
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes;
-f:强制修复;