磁盘管理:
机械式硬盘:U盘、光盘、软盘、硬盘、磁带
低级格式化:硬盘出厂所做
Partition:分区
分区是为了文件系统
MBR;Master Boot Record主引导记录(0磁道0扇区的512byte)
Main Boot Record
446byte:BootLooder,引导记录
64byte:只能标示4个分区
16byte:标示一个分区
2byte:Magic Number魔数,用来标记MBR是否有效
1、创建链接:
ln [-s -v] SRC(源文件) DEST(链接文件)
-s:创建符号链接
-sv:创建符号链接并显示源文件和链接文件名称
(1)硬链接:
1、只能对文件创建,不能对目录进行链接;
2、不能跨文件系统;
3、创建硬链接会增加文件被链接的次数;
4、文件ID号相同
例:[root@Ourlab backup]# ln abc test/abc2
[root@Ourlab backup]# ls -l
总计 60
-rw-r--r-- 1 root root 0 05-02 23:33 a
-rwxr-xr-x+ 2 root root 26815 05-07 23:14 abc
[root@Ourlab backup]# ls -i
162083 a 162088 abc 162084 b 162085 c 162082 inittab 162087 test
[root@Ourlab backup]# ls -i ./test
162088 abc2
(2)符号链接:
1、可应用于目录;
2、可以跨文件系统;
3、不会增加被链接文件的链接次数;
4、其大小为指定的路径所包含的字符个数;
例:[root@Ourlab backup]# ls -li
总计 60
162083 -rw-r--r-- 1 root root 0 05-02 23:33 a
162088 -rwxr-xr-x 1 root root 26815 05-07 23:38 abc
[root@Ourlab backup]# ls -li ./test
总计 4
162086 lrwxrwxrwx 1 root root 11 05-07 23:47 abc2 -> /backup/abc
2、du:显示目录下可以属主具备执行权限的每个文件的大小;
例:[root@Ourlab ~]# du /backup
12 /backup/test
72 /backup
-s:显示目录整体大小;
-h:单位换算
3、-df:显示整个磁盘分区
例:[root@Ourlab ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 9920624 2848284 6560272 31% /
/dev/sda3 2972268 70800 2748048 3% /home
/dev/sda1 988088 23636 913448 3% /boot
tmpfs 257416 0 257416 0% /dev/shm
-h:单位换算
例:[root@Ourlab ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 9.5G 2.8G 6.3G 31% /
/dev/sda3 2.9G 70M 2.7G 3% /home
/dev/sda1 965M 24M 893M 3% /boot
tmpfs 252M 0 252M 0% /dev/shm
-i:显示每个磁盘分区ID
-P:不进行换行显示
4、设备文件:
b:按块为单位,随机访问的设备,如:硬盘;
c:按字符为单位,线性设备,如:键盘;
5、/dev
主设备号(major number)
标识设备类型
次设备号(minor number)
标识同一种类型中不同设备
6、mknod:创建块或字符特殊文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
例:[root@Ourlab ~]# mknod mydev c 66 0
[root@Ourlab ~]# ls -l
crw-r--r-- 1 root root 66, 0 05-08 22:16 mydev
-m:指定文件权限
例:[root@Ourlab ~]# mknod -m 640 mydev2 c 66 1
[root@Ourlab ~]# ls -l
crw-r----- 1 root root 66, 1 05-08 22:18 mydev2
7、硬盘设备的设备文件名:
IDE,ATA:以hd开头
SATA:以sd开头
SCSI:以sd开头
USB:以sd开头
同一种类型下的硬盘用a,b,c...来区别同一种类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda, /dev/hdb
第二个IDE口:主、从
/dev/hdc, /dev/hdd
8、fdisk:查看当前系识别了几块硬盘:
fdisk:Linux分区表操纵器
fdisk -l [/dev/to/some_device_file]
例:查看系统上所有磁盘分区
[root@Ourlab ~]# fdisk -l
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 127 1020096 83 Linux
/dev/sda2 128 1402 10241437+ 83 Linux
/dev/sda3 1403 1784 3068415 83 Linux
/dev/sda4 1785 15665 111499132+ 5 Extended
/dev/sda5 1785 1911 1020096 82 Linux swap / Solaris
例:查看指定分区
[root@Ourlab ~]# fdisk -l /dev/sda1
Disk /dev/sda1: 1044 MB, 1044578304 bytes
255 heads, 63 sectors/track, 126 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sda1 doesn't contain a valid partition table
9、管理磁盘分区:
(1)fdisk /dev/sda
p:显示当前硬件的分区,包括没保存的改动
n:创建新分区
e:扩展分区
p:主分区
d:删除一个分区
w:保存退出
q:不保存退出
t:修改分区类型
L:显示所支持的所有类型;#与t搭配使用#
l:显示所支持的所有类型
(2)查看当前内核上识别了哪些分区:
cat /proc/partitions
(3)partprobe:通知内核重读硬盘分区表
10、文件系统管理:
(1)cat /proc/filesystems:查看当前内核所支持文件系统类型
(2)mkfs:make file system
-t FSTYPE 指定分区类型
mkfs -t ext2 = mkfs.ext2
例:[root@Ourlab ~]# mkfs -t ext2 /dev/sda5
mkfs -t ext3 = mkfs.ext3
11、专门管理ext系列文件;
(1)mke2fs:默认创建ext2类型文件系统
例:[root@Ourlab ~]# mke2fs /dev/sda5
-j:创建ext3类型文件系统
例:[root@Ourlab ~]# mke2fs -j /dev/sda5
-b BLOCK_SIZE:指定块大小,默认为4096,可用取值1024、2048或4096;
例:[root@Ourlab ~]# mke2fs -b 2048 /dev/sda5
-L LABEL:指定分区卷标;
例:[root@Ourlab ~]# mke2fs -L MYDATA /dev/sda5
-m #:指定预留给超级用户的块数百分比
例:[root@Ourlab ~]# mke2fs -m 2 /dev/sda5
-i #:用于指定为多少字节的空间创建一个inode,默认为8192:这里给出的数值应该为块大小的2^n倍;
例:[root@Ourlab ~]# mke2fs -i 4096 /dev/sda5
-N:指定inode个数;
-F:强制创建文件系统;
-E:指定额外的文件系统属性;
12、blkid:查询或查看磁盘设备的相关属性
UUID
TYPE
LABEL
例:[root@Ourlab ~]# blkid /dev/sda5
/dev/sda5: UUID="1211aeb1-710b-4c33-8c6f-28b41bc74fbd" TYPE="ext2"
13、e2label:用于查看或定义卷标
e2label 设备文件 卷标:设定卷标
例:[root@Ourlab ~]# e2label /dev/sda5 HELLODATA
[root@Ourlab ~]# e2label /dev/sda5
HELLODATA
14、tune2fs:调整文件系统的相关属性
-j: 不损害原有数据,将ext2升级为ext3;
例:[root@Ourlab ~]# tune2fs -j /dev/sda5
-L LABEL:设定或修改卷标;
例:[root@Ourlab ~]# tune2fs -L MYDATA /dev/sda5
-m #:调整预留百分比;
例:[root@Ourlab ~]# tune2fs -m 5 /dev/sda5
-r #:指定预留块数;
例:
-o:设定默认挂载选项;
acl:指定挂载的选项具备acl
-c #:指定挂载次数达到#次后进行自检,0或1表示关闭此功能;
-i #:每挂载使用多少天后进行自检,0或-1表示关闭此功能;
-l:显示超级块中的信息;
13、dumpe2fs:显示文件属性信息
-h:只显示超级块中的信息
14、fsck:检查并修复Linux文件系统
-t FSTYPE:指定文件系统类型
-a:自动修复
15、e2fsck:专用于修复ext2、ext3文件系统
-f:强制检查;
-p:自动修复;
例:[root@Ourlab ~]# e2fsck -f -p /dev/sda5
16、挂载:将新的文件系统关联至当前根文件系统
17、卸载:将某文件系统与当前根文件系统的关联关系予以移除;
(1)mount:挂载
mount 设备[卷标或UUID] 挂载点
1)设备:
设备文件:/dev/sda5
例:[root@Ourlab ~]# mkdir /mnt/test
[root@Ourlab ~]# mount /dev/sda5 /mnt/test
[root@Ourlab ~]# cd /mnt/test
[root@Ourlab test]# ls
lost+found
卷标:LABEL=""
UUID: UUID=""
2)挂载点:目录
要求:
1、此目录没有被其它进程使用;
2、目录得事先存在;
3、目录中的原有的文件将会暂时隐藏;
(2)mount:显示当前系统已经挂载的设备及挂载点;
(3)mount [options] [-o options] DEVICE MOUNT_POINT
-a:表示挂载/etc/fstab文件中定义的所有文件系统
-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;
使用-n选项意味着挂载设备时,不把信息写入此文件;
例:[root@Ourlab ~]# mount -n /dev/sda5 /mnt/test
-t FSTYPE:指定正则挂载设备上的文件系统的类型,不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;
-r:只读挂载,挂载光盘时常用此选项;
-w:读写挂载
-o:指定额外的挂载选项,也即指定文件系统启用的属性
remount:重新挂载当前文件系统
-ro:挂载为只读
例:[root@Ourlab ~]# mount -o remount,ro /dev/sda5
-rw:挂载为读写
18、挂载完成后,要通过挂载点访问对应文件系统上的文件:
19、umount:卸载某文件系统
用法:umount 设备
例:[root@Ourlab ~]# umount /dev/sda5
umount 挂载点
例:[root@Ourlab ~]# umount /mnt/test
卸载注意事项:
1、挂载的设备没有进程使用;
20、cat /proc/filesystems:查看当前内核所支持文件系统类型
课后练习:
1、创建一个2G的分区/dev/sda8,文件系统为ext2,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的8%;挂载至/backup目录,
要求使用卷标进行挂载,且在挂载时启动此文件系统上的acl功能;
# mke2fs -L DATA -b 1024 -m 8 /dev/sda8
# mount -o acl LABEL=DATA /backup
或
# tune2fs -o acl /dev/sda7
# mount LABEL=DATA /backup
2、将此文件系统的超级块中的信息中包含了block和inode的行保存至/tmp/partition.txt中;
[root@Ourlab ~]# tune2fs -l /dev/sda8 | egrep -i "block|inode" >> /tmp/partition.txt
3、复制/etc目录中的所有文件至此文件系统;而后调整此文件系统类型为ext3,要求不能损坏已经复制而来的文件;
[root@Ourlab ~]# cp -r /etc/* ./backup
[root@Ourlab ~]# tune2fs -j /dev/sda8
4、调整其预留百分比为3%;
[root@Ourlab ~]# tune2fs -m 3 /dev/sda8
5、以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验正其效果;
[root@Ourlab ~]# stat ./backup
[root@Ourlab ~]# mount -o remount,noatime /backup
6、对此文件系统强行做一次检测;
[root@Ourlab ~]# e2fsck -f /dev/sda8
7、删除复制而来的所有文件,并将此文件系统重新挂载为同步(sync);而后再次复制/etc目录中的所有文件至此挂载点,体验其性能变化;
# rm -rf ./backup/*
# mount -o remount,sync ./backup
# cp -r /etc/* ./backup
1、swap分区(交换分区)
(1)虚拟内存
free:查看内存空间
-m:单位换算
(2)fdisk命令中,调整分区类型为82(即swap)
(3)创建交换分区:
mkswap /dev/sda#
-L LABEL:指定卷标名
(4)挂载交换分区:
swapon /dev/sda# :启用交换分区
-a:启用所有的定义在/etc/fstab文件中的交换设备
swapoff /dev/sda# :关闭交换分区
例:利用磁盘剩余的空间,创建swap分区
[root@Ourlab ~]# fdisk /dev/sda /需要调整分区类型为82(即swap)/
[root@Ourlab ~]# mkswap /dev/sda8
[root@Ourlab ~]# swapon /dev/sda8
(5)回环设备:
loopback,使用软件来模拟实现硬件
(6)创建一个镜像文件,120G
1)dd命令:
if=数据来源
of=数据存储目标
bs=数据块大小
count=bs数
例1:#dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
例2:利用已有的分区空间,增加swap分区空间;
[root@Ourlab ~]# dd if=/dev/zero of=/var/swapfile bs=1M count=512
[root@Ourlab ~]# mkswap /var/swapfile
[root@Ourlab ~]# swapon /var/swapfile
[root@Ourlab ~]# free -m
seek=#:创建数据文件时,跳过的空间大小
例:[root@Ourlab ~]# dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00565885 seconds, 185 MB/s
[root@Ourlab ~]# du -sh /var/swapfile2 /查看真实空间大小为:1.1M/
1.1M /var/swapfile2
[root@Ourlab ~]# ls -lh /var/swapfile2 /虚假空间:前1023M跳过/
-rw-r--r-- 1 root root 1.0G 05-20 22:47 /var/swapfile2
(7)mount命令,可以挂载iso镜像;
mount DEVICE MOUNT_POINT
-o loop :挂载本地回环设备
例:#mount -o loop /root/rhci-5.8-1.iso /media /挂载本地镜像文件/
2、文件系统的配置文件/etc/fstab
OS在初始化时,会自动挂载此文件中定义的每一个文件系统
/etc/fstab文件结构:
第一个字段:要挂载的设备
第二个字段:挂载点(挂载位置)
第三个字段:文件系统类型
第四个字段:挂载选项(默认defaults)
第五个字段:转储频率(每多少天做一次完全备份;0表示不做备份;1表示每一天备份一次;2表示每两天备份一次)
第六个字段:文件系统检测次序(只有根为1;1表示首先检测;0表示不检测;2表示1(即根)检测完后检测,可以同时多个出现)
例:[root@Ourlab ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
LABEL=SWAP-sda5 swap swap defaults 0 0
mount -a :挂载所有的定义在/etc/fstab文件中的交换设备
3、文件挂载成功的信息都会在/etc/mtab文件中;
mount -n DEVICE MOUNT_POINT:文件挂载成功信息不在/etc/mtab文件中保存;
4、fuser:验证进程正在使用的文件或套接字文件
-v:查看某文件上正在运行的进程
-k:
-m:
fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程
练习:
1、创建一个1G的分区,文件系统为ext3,卷标为MYDATA2,块大小为1024,预留管理空间为磁盘分区的3%
要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
[root@Ourlab ~]# fdisk /dev/sda
[root@Ourlab ~]# mke2fs -j -L MYDATA2 -m 3 -b 1024 /dev/sda7
[root@Ourlab ~]# vim /etc/fstab
LABEL=MYDATA2 /data ext3 defaults 0 0
2、创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512M,卷标为SWAP-FILE,且开机自动启用此交换设备;
[root@Ourlab ~]# mkdir /var/swaptemp
[root@Ourlab ~]# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
[root@Ourlab ~]# vim /etc/fstab
/var/swaptemp/swapfile swap swap defaults 0 0
3、上述第一问,如何让其自动挂载的同时启用ACL功能;
[root@Ourlab ~]# vim /etc/fstab
LABEL=MYDATA2 /data ext3 defaults,acl 0 0
阅读(1096) | 评论(0) | 转发(0) |