磁盘、文件系统
1.MBR
MBR:Main Boot Record主引导记录,在硬盘的0磁道0扇区,共512字节。
前446字节:BootLoader,引导程序
中64字节:分区表,每16个字节标识一个分区,所以每个硬盘只能划分4个主分区;主+扩展<=4;扩展分区最多1个
后2字节:Magic Number,标记MBR是否有效
2.链接
硬链接:直接指向同一个文件的不同路径称为硬链接,当文件有多个硬链接,删除一个并不会将文件删除。
1.只能对文件创建,不能对目录创建
2.不能跨文件系统
3.创建硬链接会增加文件被链接的次数
软链接:指向另一个文件的路径,也称为符号链接,软链接权限为777,并没有用实际意义,最终要看指向文件的权限。
1.可应用于目录
2.可以跨文件系统
3.不会增加文件被链接的次数
3.其大小为指定的路径所包含的字符个数
ln [-sv] 源文件 目标文件:默认为创建硬链接
-s:创建软链接
-v:显示创建过程
3.分区管理
· du:显示当前目录下每个文件占据的空间大小
-s:总共占据的大小
-h:进行单位换算之后显示出来
· df:显示分区上的空间使用情况
-h:进行单位换算之后显示出来
-i:显示inode使用情况
-P:不换行显示
· 硬盘设备的设备文件名
IDE,ATA:hd[a,b,c...]
STAT,SCSI,USB:sd[a,b,c...]
hda1:第一个主分区
hda2-4:可以是主分区
hda5:第一个逻辑分区
· fdisk /dev/sd[a...]:查看硬盘使用情况和对硬盘分区
-l:可以查看当前硬盘使用情况
m:进入分区模式之后,m选项可以显示能操作的命令
[root@bogon ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition 删除一个分区 l list known partition types 列出可以做的分区类型 m print this menu 列出帮助信息,就是这条命令 n add a new partition 添加一个分区 o create a new empty DOS partition table 列出分区表 p print the partition table 显示当前硬盘分区情况 q quit without saving changes 不保存退出 s create a new empty Sun disklabel t change a partition's system id 改变分区类型 u change display/entry units v verify the partition table w write table to disk and exit 保存退出 x extra functionality (experts only)
partprobe:在进行完分区之后,要进行重读内核。查看已经读进内核的分区可以用下面。
[root@bogon ~]# cat /proc/partitions major minor #blocks name 8 0 20971520 sda 8 1 307200 sda1 8 2 16567296 sda2 8 3 4096000 sda3
4.文件系统
查看当前内核支持的文件系统
[root@bogon ~]# cat /proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev tmpfs nodev devtmpfs
· mkfs -t 文件系统类型 /dev/sda?:创建文件系统
-t:指定要创建的文件系统
也可以使用
[root@bogon ~]# mkfs. mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat mkfs.ext2 mkfs.ext4 mkfs.msdos
· mke2fs /dev/sda?:直接指定ext系列文件系统,默认格式化成ext2
-j:格式化成ext3
-b 块大小:指定块大小,默认4096,可以修改成1024,2048
-L:指定卷标
-m 数字(不用加百分号):指定为管理员预留的块大小
-i 数字:指定多少个字节一个inode,默认为8192,这里给的数值应为块大小的2㎡倍
-N 数字:指定inode个数
-F:强制创建文件系统
· blkid:查看文件系统类型,卷标,UUID
· e2label /dev/sda# [xxxxx]:查看卷标 [设置卷标]
· tune2fs [-jLmo] /dev/sda# :调整文件系统的相关属性
-j:不损害原有数据,将ext2升级为ext3
-L 卷标:设定修改卷标
-m 数字:调整为管理员的预留百分比
-r 数字:指定为管理员的预留块数
-o:设定默认挂载选项,acl
-c 数字:指定挂载次数达到#次之后进行自检,0或-1表示关闭此功能
-i 数字:每挂载使用#天之后进行自检,0或-1表示关闭此功能
-l:显示超级块中的信息
· dumpe2fs /dev/sda#:显示文件属性信息
-h:只显示超级块中的信息
· fsck:检查并修复文件系统
-t 文件系统类型:指定文件系统类型,不要指定错了,也可以不指定
-a :自动修复
· e2fsck:专用于检查修复ext2/ext3文件系统
-f:强制检查
-p:自动修复
5.挂载
将新的文件系统关联至当前根文件系统。
/etc/fstab:文件系统的配置文件,系统再启动时,会自动挂载此文件中定义的每个文件系统
[root@bogon ~]# cat /etc/fstab UUID=cf0eb01c-5323-476e-ab72-d4d601b0bcfb / ext4 defaults 1 1 UUID=8226164c-06ab-46d1-99ea-c4dab5c7158f /boot ext4 defaults 1 2 UUID=96f60d2b-a1d8-414b-ac88-d5f032933882 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 字段1:要挂载的设备 字段2:挂载点 字段3:文件系统类型 字段4:挂载选项 字段5:转储频率(每多少天做一次完全备份,0表示备份,1表示每天备份一次,2没两天备份一次) 字段6:文件系统检测次序(0,表示不检查,只有根为1,其他设备可以同为2)
· mount [options] [-o options] 设备 挂载点:挂载设备,不加任何选项,可显示当前系统上挂载的设备
options:
-a:表示挂载/etc/fatab文件中定义的所有文件系统
-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用-n,代表不写入文件
-t 文件系统类型:指定正在挂载设备上的文件系统类型,不使用此选项时,mount会调用blkid命令获取对应文件系统类型
-r:只读挂载
-w:读写挂载
-o options:指定额外的挂载选项,也即指定文件系统启用的属性
remount:重新挂载当前文件系统
ro:挂载为只读
rw:读写挂载
async:同步写入,noasync非同步写入
atime:当有访问的时候就记录下来,noatime,不写入
loop:可以挂载镜像文件到目录
设备:
设备文件:/dev/sda#
卷标:LABEL=""
UUID:UUID=""
挂载点:目录
1.此目录没有被其他进程使用
2.目录必须存在
3.目录中原有文件将会被暂时隐藏
挂载完成后,要通过挂载点访问对应文件系统上的文件
· umount [设备 | 挂载点]:卸载文件系统,只需要指定一个就可以。挂载的设备没有进程使用
· fuser [-kvm] [文件或文件系统]:验证进程正在使用的文件或套接字
-v:查看某文件上正在运行的进程
-k:杀死这个进程
-m:指定一个文件系统或设备
6.内存
· free:查看内存使用情况
-m:以MB显示
-g:以GB显示
· mkswap /dev/sda#:创建交换分区,在创建交换分区之前需要fdisk中调整分区类型为swap
-L 标签:也可以指定标签
· swapon /dev/sda#:启用交换分区
-a:启用所有的定义在/etc/fatab文件中的交换设备
· swapoff /dev/sda#:关闭交换分区
· dd命令:做底层复制。
if=数据来源
of=数据存储目标
bs=#字节,#M,一次复制多少字节或MB
count=#,复制多少次
seek=#,在开始复制时跳过多少
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1,这条命令用来备份MBR
dd if=/dev/zero of=/root/zero.swap bs=1M count=256,这条命令是从/dev/zero吐泡机拿出256M的0到/root/zero.swap下。
· /dev/zero:吐泡机,要多少0给你多少0
· /dev/null:黑洞,啥都能吃