zoukankan      html  css  js  c++  java
  • Linux09 磁盘管理和fstab配置文件

    磁盘管理

    在磁盘的 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
    
  • 相关阅读:
    【math】共线性的影响分析
    【colab】挂载google网盘
    【ML】非均衡样本处理
    phpwind < v6 版本命令执行漏洞
    Uc爆破工具
    shodan:黑客搜索引擎
    webshell下执行命令脚本汇集
    Android利用Fiddler进行网络数据抓包
    150个在线代理站点
    PHP filesystem attack vectors
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/14707120.html
Copyright © 2011-2022 走看看