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
    
  • 相关阅读:
    SCAU 9504 面试
    SCAU 9503 懒人选座位
    SCAU 8628 相亲
    SCAU 10691 ACM 光环
    SCAU 8626 原子量计数
    SCAU 10674 等差对
    HDU ACM 1048 The Hardest Problem Ever (水题)
    SCAU 9502 ARDF
    SCAU 10686 DeathGod不知道的事情
    SCAU 8629 热身游戏(高精度)
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/14707120.html
Copyright © 2011-2022 走看看