磁盘管理
在磁盘的 0磁道 0扇区 存放的时MBR,独立于操作系统之外的。
MBR:主引导记录(512bytes)
Master Boot Record
Main Boot Record
446bytes:BootLoader,程序
64bytes:
16bytes:标识一个分区,最多只能建立4个主分区 想创建更多分区,第4个分区可以作为扩展分区,扩展分区存放的是指针,指针指向一个更大的存储空间,再在这个存储空间划分存储分区(逻辑分区)。
2bytes:Magic Number
标记MBR是否有效
文件连接
硬链接:/backup/a/m.txt /backup/b/n.txt 像这种m.txt和n.txt直接指向同一个inode的不同路径,他们彼此之间就可以称之为硬链接。
1.只能对文件创建,不能应用于目录;
2.不能跨文件系统;
3.创建硬链接会增加文件被链接的次数;
符号链接:
1.可应用于目录;
2.可以跨文件系统;
3.不会增加被链接文件的链接次数;
4.其大小为指定的路径所包含的字符个数;
du 目录名:显示一个目录或文件系统整体所占空间的大小(文件所占用的磁盘的大小)
du -s : 显示这个目录及这个目录中的子文件各占用的磁盘大小
du -sh : 可以对所占尺寸的大小进行单位换算
df:查看文件系统对磁盘空间的使用率
-h # 单位换算
-i # 换算成磁盘块,以磁盘块显示磁盘的使用率
-P # 因为文件名太长会换行显示,加上-P参数,可以不换行显示
df -P -i
设备文件:
b:按块为单位,随机访问的设备;
c:按字符为单位,线性访问;
b:硬盘
c:键盘
/dev # ls -al /dev 的第5列和第6列代表:主设备号、次设备号,保存在inode中,不占用额外的磁盘空间。 引用一个设备时通过主设备号和次设备号引用的。
主设备号 (major number):用于标识设备类型
次设备号(minor number):表示同一种类型中不同设备
mknod (设备文件的创建)
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE
硬盘设备的设备文件名:
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
a,b,c...来区分同一种类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda,/dev/hdb
第二个IDE口:主、从
/dev/hdc,/dev/hdd
sda,sdb,sdc,...
hda: 一个磁盘最多又4个主分区,或者3个主分区和1个扩展分区;扩展分区可以划分若干个逻辑分区,即使主分区小于4个,逻辑分区的编号也只能从5开始
hda1:第一个主分区
hda2:
hda3:
hda4:
hda5:第一个逻辑分区
查看 当前系统识别了几块磁盘:
fdisk -l # 所有已识别的设备
fdisk -l [/dev/to/some_device_file]
fidsk -l /dev/sda # 指定看sda这个已被识别的设备
管理磁盘分区:
Linux支持的文件系统:
文件系统是一种让我们在磁盘上创建文件管理的一种软件,属于内核中应该提供的基本功能;我们要把某个设备格式化成某个类型的文件系统,管理文件系统的软件(程序)在用户空间里面,是一个用户进程;用户进程可以实现将某个硬盘的分区格式化(高级格式化)为内核支持的某一中文件类型;
格式化:低级格式化是用来创建磁道的;高级格式化,是用来创建文件系统的
高级格式化:
mkfs -t ext3 # mkfs是一个格式化命令,格式化成ext3的类型
创建文件系统需要用户的命令,介个内核制定的来完成
fdisk /dev/sda
p:显示当前硬件的分区,包括没保存的改动
n:创建新分区
e(extented):扩展分区
p(physical):物理分区
d:删除一个分区
w:保存退出
q:不保存退出
t:修改分区类型
L:
l:显示所支持的所有分区类型
文件系统
文件系统是一种让我们在磁盘上创建
cp -r /etc/* /backup
tune2 -j /dev/sda7
4.调整其预留百分比为3%;
tune2fs -m 3 -L DATA /dec/sda7
5. 已重新挂在的方式挂载此文件系统为不更新访问时间戳,并验证其效果;
stat /backup/inittab
cat /backup/inittab
stat
mount -o remount,noatime /backup
cat
stat
6.对此文件系统强行做一次检测;
e2fsck -f /dev/sda7
7.删除复制而来的所有文件,并将此文件系统重新挂在为同步(sync);而后再次复制/etc、目录中的所有文件至此挂载点,体验其性能变化;
rm -rf /backup/*
mount -o remount,sync /backup
cp -r /etc/* /backup
swap分区:
虚拟内存:
free # 查看当前系统的物理内存和交换空间的使用情况,默认单位是字节
free -m # 更换单位为M
buffers(缓冲):防止过慢的接收数据的设备遭受到冲击,中间加的缓冲
cached(缓存):为了重复使用
partprobe /dev/sda # 让内核重新识别分区 一般创建新的分区之后要使用该命令,不然fdisk找不到新的分区
用fdisk命令,调整分区类型为82
创建交换分区:
mkswap /dev/sda8
-L LABEL # 指定卷标
free -m 发现交换分区还没启用,需要挂载才能使用
swapon /dev/sda8
-a:启用所有的定义在/etc/fstab文件中的交换设备
swapoff /dev/sda8
回环设备
loopback,使用软件来模拟实现硬件
创建一个镜像文件,120G
dd if=/etc/inittab of=/root/inittab #类似cp if(input file)指定要拷贝的文件,of(output),要复制到目录及文件名
dd和cp的不同:
dd:按照数据流进行的复制,可以只拷贝文件的几个字节
cp:复制整个文件
使用本地回环设备创建交换分区:
if=数据来源
of=数据存储目标
ba=1 # block size 指定以多少字节为一个单位去复制
count=2 # 表示一共复制多少个这样的字节
表示以一个字节为单位,一共复制两个字节
seek=#:创建数据文件时,跳过的空间大小
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 # 指定从从/dev/sda拷贝数据,但是没有指定文件,所以是从sda磁盘的开头位置开始复制,复制的是MDR。 有需要的话,可以通过这个命令将磁盘的MBR进行备份,如果在磁盘的MBR损坏的时候我们可以用下面一个命令将其覆盖回来。
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1024 # 跳过了前1023M,实际创建的这个swap只有1M 可以使用 du -sh /var/swapfile 查看
dd if=/dev/zero/ of=/var/swapfile bs=1M count=1024
ls -al /barswapfile
mkswap /var/swapfile
free -m
swapon /var/swapfile
free -m
mount命令,可以挂在iso镜像
mount DEVICE MOUNT_POINT
mount -o loop /root/rhci-5.8-1.iso /media # 挂载本地回环设备
wget ftp://192.168.1.8/pub/isos/rhci-5.8-1.iso
fstab配置文件
文件系统的配置文件/etc/fstab
os在初始化时,会自动挂载此文件中定义的每个文件系统
fstab文件中每列第具体含义:
要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率 文件系统检测次序
转储频率(多长时间对此文件系统进行一次完全备份 0不备份 1每天备份 2每隔一天备份)
文件系统检测次序(只有根可以为1,0表示不检查)
mount -a # 挂载fstab中所指定的所有文件系统
mount -n # 挂载时不更新/etc/mtab文件;
当取消某个设备的挂载的时候,如果有人登录到这个文件系统,会导致卸载的时候报错:device is busy. 这时候可以使用fuser查看是什么用户正在使用该文件系统:
如果没有fuser命令,可以使用 yum install psmisc -y 进行安装
fuser : 验证
-v # 显示是哪个用户正在访问
fuser -v /var/test
-k # 杀掉访问当前文件的进程
fuser -k /var # 用户会被踢出系统
-m # 如果这个文件是个挂载点需要杀掉的话,需要加-m选项,
fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程
fuser -km /mnt/test
unmount /mnt/test # 现在就可以正常卸载了
cat /proc/filesystem:查看当前内核所支持文件系统类型
练习:
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
LABLE='MYDATA' /data ext3 defaults,acl 0 0