磁盘管理:
机械式硬盘
MBR(master/main boot record)
446byte:bootloader
64byte:分区信息
16byte 一个分区
2byte:magic number
标记MBR是否有效
主+扩展 < = 4
分区以柱面为单位
metadata 元数据
块位图:bitmap
inode ,index node
blockgroup 块组
supperblock超级块
ln:链接文件
ln [-v -s] src dest
硬链接
文件指向同一个inode
只能对文件,不能对文件夹
不能跨文件系统
会增加链接数
软链接
能跨文件系统
大小为路径包含的字符数
可用于目录
不会增加链接数
du :查看文件使用大小
-s 显示目录本身
-h 单位转换
df :显示分区的使用情况
/dev/
主设备号(major):设备类型
次设备号(minor):相当于ID
创建设备文件
mknod [option] name type [major minor]
-m mode
echo "hello" >> /dev/pts/1
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
a,b,c,...来区分同一种类型下的不同设备
hda:
hda1:第一个分区
hda2:
hda3:
hda4:
hda5:第一个逻辑分区
查看磁盘相关信息
fdisk -l
VFS(virtual file system)(中间件)
fdisk:管理磁盘
m:help
p:print
n:new
d:delete
w:save and exit
q:exit with no save
t:type
L
l:list type
Ctrl + backsapce == 删除字符
cat /proc/partitions 查看分区表
partprobe [/dev/sda] 重读分区表(rhel6不使用,使用partx)
用户模式:用户空间
内核模式:内核空间
CPU 分为4个环,ring0在最内部,内核在ring0运行,用户进程在ring3执行
元数据占的空间是预先保留的
block size 1024,2048,4096(byte)
软链接一般不占block
设备文件也不占block
inode bitmap, block bitmap ,block group,supperblock,block descriptor(GDT)
每个分区的block0不能被使用,被称为boot block
文件系统管理
重新创建文件系统会损坏原有文件
cat /proc/filesystems 查看支持文件系统
mkfs -t type device
mkfs -t ext3 = mkfs.ext3
专门管理ext系统文件
mke2fs device
-j:journal
-b:block size,default 4096
-L:LABEL
-m:reserved for super user percentage %
-i:size for inode ,default 8192
-N:inode number
-P:force
-E:extend attributes
blkbid device
查看UUID TYPE LABEL
e2label:查看或定义卷标
tune2fs:调整文件系统的相关属性
-j:不损坏原有数据,加入journal
-L:LABEL
-m:reserved for super user percentage
-r:block that reserved for super user
-o:default mount parameter
acl
-c:指定挂载多少次后进行自检 -1,0 表示关闭功能
-l:super block information
-i:指定使用多不天后进行自检 -1,0 表示关闭功能
dumpe2fs:显示文件系统属性信息
-h:只显示super block
fsck:检查并修复文件系统
-t:
-a:自动修复,不需要确认
e2fsck:
-f:force
-p:自动修复,不需要确认
挂载:将新的文件系统关联到当前根文件系统
卸载:将某文件系统与当前根文件系统的关联关系予以移除
mount
mount 设备 挂载点
设备:
设备文件:/dev/sda1
卷标:LABEL=""
UUID: UUID=""
挂载点:目录
要求:
1.此目录没有被其他进程使用
2.目录得事先存在
3.目录中的原有文件会被暂时隐藏
mount不加参数,显示当前系统已经挂载的设备及挂载点
mout [options] [-o options] device mount_point
-a:表示挂载/etc/fstab文件中定义的所有文件系统
-n:默认,每挂载一个设备都会把信息保存到/etc/mtab文件,使用此选项可以不写入文件
-t:type
-r:只读挂载,挂载光盘时常用
-w:读写挂载
-o:指定额外的挂载选项参数,也即文件系统启用的
sync,async
atime,noatime
auto,noauto(mount -a)
exec,noexec
suid,nosuid
owner(allow ordinary user mount his device)
defaults(rw,suid,dev,exec,auto,nouser,async,relatime)
remount
ro
_netdev(防止没有网络时,不能启动的情况)
挂载完成后,要通过挂载点访问对应文件系统上的文件
umount
umount device
umount mount_point
注意:
挂载的设备没有进程在使用
Linux的虚拟地址空间也为0~4G,Linux内核将这4G字节的空间分为两部分,
将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间",
而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为"用户空间),
因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享,
于是,从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间,
查看内存使用情况
cat /proc/meminfo
free -m
创建交换分区
调整分区类型为82
mkswap device
swapon device
swapon -a (自动挂载由/etc/fstab中定义的交换分区)
删除分区
swaoff device
修改分区类型
创建回环设备
dd命令
if=data source
of=data destination
bs=block size
count=bs count
seek=count(跳过)
dd if=/dev/sda of=/mnt/usb/mbr.bak bs=512 count=1 (备份MBR)
dd if=/dev/usb/mbr.bak of=/dev/sda bs=512 count=1 (还原MBR)
cat /dev/cdrom > /root/rhel6.iso (制作镜像)
dd if=/dev/zero of=/var/emptyfile bs=1M count=1024 (创建空文件)
dd if=/dev/zero of=/var/emptyfile seek=1023 bs=1M count=1024 (创建1G空文件,前1023并没有使用)
mount挂载iso镜像
wget ftp://192.168.56.101/pub/**.iso
mount -o loop **.iso mount_point
fuser:验证进程正在使用的文件或套接字
fuser /mnt/cdrom
-v:
-k:
-m:
fuser -km mount_point 终止正在访问此挂载点的所有进程
lsof
文件系统的配置文件/etc/fstab(/etc/mtab)
os初始时会自动挂载此文件定义的每个文件系统
设备 挂载点 文件系统类型 挂载选项 转储频率(每多少天备份一次) 文件系统检测顺序(只有根为1)
/dev/sda5 /mnt/test ext3 defaults 0 0
练习:
1.创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
2.创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512MB,卷标为SWAP-FILE,且开机自动启用此交换设备;
# mkdir /var/swaptemp
# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
# mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile
/etc/fstab
/var/swaptemp/swapfile swap swap defaults 0 0
3.上述第一问,如何让其自动挂载的同时启用ACL功能;
/etc/fstab
LABEL='MYDATA' /data ext3 defaults,acl 0 0
机械式硬盘
MBR(master/main boot record)
446byte:bootloader
64byte:分区信息
16byte 一个分区
2byte:magic number
标记MBR是否有效
主+扩展 < = 4
分区以柱面为单位
metadata 元数据
块位图:bitmap
inode ,index node
blockgroup 块组
supperblock超级块
ln:链接文件
ln [-v -s] src dest
硬链接
文件指向同一个inode
只能对文件,不能对文件夹
不能跨文件系统
会增加链接数
软链接
能跨文件系统
大小为路径包含的字符数
可用于目录
不会增加链接数
du :查看文件使用大小
-s 显示目录本身
-h 单位转换
df :显示分区的使用情况
/dev/
主设备号(major):设备类型
次设备号(minor):相当于ID
创建设备文件
mknod [option] name type [major minor]
-m mode
echo "hello" >> /dev/pts/1
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
a,b,c,...来区分同一种类型下的不同设备
hda:
hda1:第一个分区
hda2:
hda3:
hda4:
hda5:第一个逻辑分区
查看磁盘相关信息
fdisk -l
VFS(virtual file system)(中间件)
fdisk:管理磁盘
m:help
p:print
n:new
d:delete
w:save and exit
q:exit with no save
t:type
L
l:list type
Ctrl + backsapce == 删除字符
cat /proc/partitions 查看分区表
partprobe [/dev/sda] 重读分区表(rhel6不使用,使用partx)
用户模式:用户空间
内核模式:内核空间
CPU 分为4个环,ring0在最内部,内核在ring0运行,用户进程在ring3执行
元数据占的空间是预先保留的
block size 1024,2048,4096(byte)
软链接一般不占block
设备文件也不占block
inode bitmap, block bitmap ,block group,supperblock,block descriptor(GDT)
每个分区的block0不能被使用,被称为boot block
文件系统管理
重新创建文件系统会损坏原有文件
cat /proc/filesystems 查看支持文件系统
mkfs -t type device
mkfs -t ext3 = mkfs.ext3
专门管理ext系统文件
mke2fs device
-j:journal
-b:block size,default 4096
-L:LABEL
-m:reserved for super user percentage %
-i:size for inode ,default 8192
-N:inode number
-P:force
-E:extend attributes
blkbid device
查看UUID TYPE LABEL
e2label:查看或定义卷标
tune2fs:调整文件系统的相关属性
-j:不损坏原有数据,加入journal
-L:LABEL
-m:reserved for super user percentage
-r:block that reserved for super user
-o:default mount parameter
acl
-c:指定挂载多少次后进行自检 -1,0 表示关闭功能
-l:super block information
-i:指定使用多不天后进行自检 -1,0 表示关闭功能
dumpe2fs:显示文件系统属性信息
-h:只显示super block
fsck:检查并修复文件系统
-t:
-a:自动修复,不需要确认
e2fsck:
-f:force
-p:自动修复,不需要确认
挂载:将新的文件系统关联到当前根文件系统
卸载:将某文件系统与当前根文件系统的关联关系予以移除
mount
mount 设备 挂载点
设备:
设备文件:/dev/sda1
卷标:LABEL=""
UUID: UUID=""
挂载点:目录
要求:
1.此目录没有被其他进程使用
2.目录得事先存在
3.目录中的原有文件会被暂时隐藏
mount不加参数,显示当前系统已经挂载的设备及挂载点
mout [options] [-o options] device mount_point
-a:表示挂载/etc/fstab文件中定义的所有文件系统
-n:默认,每挂载一个设备都会把信息保存到/etc/mtab文件,使用此选项可以不写入文件
-t:type
-r:只读挂载,挂载光盘时常用
-w:读写挂载
-o:指定额外的挂载选项参数,也即文件系统启用的
sync,async
atime,noatime
auto,noauto(mount -a)
exec,noexec
suid,nosuid
owner(allow ordinary user mount his device)
defaults(rw,suid,dev,exec,auto,nouser,async,relatime)
remount
ro
_netdev(防止没有网络时,不能启动的情况)
挂载完成后,要通过挂载点访问对应文件系统上的文件
umount
umount device
umount mount_point
注意:
挂载的设备没有进程在使用
Linux的虚拟地址空间也为0~4G,Linux内核将这4G字节的空间分为两部分,
将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间",
而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为"用户空间),
因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享,
于是,从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间,
查看内存使用情况
cat /proc/meminfo
free -m
创建交换分区
调整分区类型为82
mkswap device
swapon device
swapon -a (自动挂载由/etc/fstab中定义的交换分区)
删除分区
swaoff device
修改分区类型
创建回环设备
dd命令
if=data source
of=data destination
bs=block size
count=bs count
seek=count(跳过)
dd if=/dev/sda of=/mnt/usb/mbr.bak bs=512 count=1 (备份MBR)
dd if=/dev/usb/mbr.bak of=/dev/sda bs=512 count=1 (还原MBR)
cat /dev/cdrom > /root/rhel6.iso (制作镜像)
dd if=/dev/zero of=/var/emptyfile bs=1M count=1024 (创建空文件)
dd if=/dev/zero of=/var/emptyfile seek=1023 bs=1M count=1024 (创建1G空文件,前1023并没有使用)
mount挂载iso镜像
wget ftp://192.168.56.101/pub/**.iso
mount -o loop **.iso mount_point
fuser:验证进程正在使用的文件或套接字
fuser /mnt/cdrom
-v:
-k:
-m:
fuser -km mount_point 终止正在访问此挂载点的所有进程
lsof
文件系统的配置文件/etc/fstab(/etc/mtab)
os初始时会自动挂载此文件定义的每个文件系统
设备 挂载点 文件系统类型 挂载选项 转储频率(每多少天备份一次) 文件系统检测顺序(只有根为1)
/dev/sda5 /mnt/test ext3 defaults 0 0
练习:
1.创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
2.创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512MB,卷标为SWAP-FILE,且开机自动启用此交换设备;
# mkdir /var/swaptemp
# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
# mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile
/etc/fstab
/var/swaptemp/swapfile swap swap defaults 0 0
3.上述第一问,如何让其自动挂载的同时启用ACL功能;
/etc/fstab
LABEL='MYDATA' /data ext3 defaults,acl 0 0