fstab配置文件、swap分区,文件关联,lvm
挂载点和/etc/fstab
配置文件系统体系 被mount、 fsck和其它程序使用 系统重启时保留文件系统体系 可以在设备栏使用文件系统卷标 使用mount -a 命令挂载/etc/fstab中的所有文件系统
文件挂载配置文件
/etc/fstab 每行定义一个要挂载的文件系统; 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 要挂载的设备或伪文件系统: 设备文件、 LABEL(LABEL="")、 UUID(UUID="")、伪文件系统名称(proc,sysfs) 挂载选项: defaults 转储频率: 0:不做备份 1:每天转储 2:每隔一天转储 自检次序: 0:不自检 1:首先自检;一般只有rootfs才用1
处理交互文件和分区
交换分区是系统RAM的补充 基本设置包括: • 创建交换分区或者文件 • 使用mkswap写入特殊签名 • 在/etc/fstab文件中添加适当的条目 • 使用swapon -a 激活交换空间
挂载交换分区
启用: swapon swapon [OPTION]... [DEVICE] -a:激活所有的交换分区; -p PRIORITY:指定优先级 /etc/fstab:pri=value 禁用: swapoff [OPTION]... [DEVICE]
SWAP的优先级
用户可以给某个swap指定一个0到32767的优先级 如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一。 先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)。 优化性能:分布存放,高性能磁盘存放
移动介质
挂载意味着使外来的文件系统看起来如同是主目录树的一部分 访问前、介质必须被挂载 摘除时,介质必须被卸载 按照默认设置,非根用户只能挂载某些设备(光盘、 DVD、软盘、 USB等等) 挂载点通常在/media 或/mnt下
使用光盘
在图形环境下自动启动挂载/run/media/<user>/<label> 否则就必须被手工挂载 mount /dev/cdrom /mnt/ eject命令卸载或弹出磁盘 创建ISO文件 cp /dev/cdrom /root/centos7.iso mkisofs -r -o /root/etc.iso /etc 刻录光盘 wodim –v –eject centos.iso
挂载USB介质
被内核探测为SCSI设备 • /dev/sdaX、 /dev/sdbX、或类似的设备文件 在图形环境中自动挂载 • 图标在[计算机]窗口中创建 • 挂载在/run/media/<user>/<label> 手动挂载 • mount /dev/sdb1 /mnt
常见工具
内存空间使用状态: free [OPTION] -m: 以MB为单位 -g: 以GB为单位 文件系统空间占用等信息的查看工具: df [OPTION]... [FILE]... -H 以1000为单位 -T 文件系统类型 -h: human-readable -i: inodes instead of blocks -P: 以Posix兼容的格式输出 查看某目录总体空间占用状态: du [OPTION]... DIR -h: human-readable -s: summary
工具dd
dd命令: convert and copy a file 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#: block size, 复制单元大小 count=#:复制多少个bs of=file 写到所命名的文件而不是到标准输出 if=file 从所命名文件读取而不是从标准输入 bs=size 指定块大小(既是是ibs也是obs) ibs=size 一次读size个byte obs=size 一次写size个byte cbs=size 一次转化size个byte skip=blocks 从开头忽略blocks个ibs大小的块 seek=blocks 从开头忽略blocks个obs大小的块 count=n 只拷贝n个记录 conv=conversion[,conversion...] 用指定的参数转换文件。 转换参数: ascii 转换 EBCDIC 为 ASCII ebcdic 转换 ASCII 为 EBCDIC block 转换为长度为 cbs 的记录,不足部分用空格填充。 unblock 替代cbs长度的每一行尾的空格为新行 lcase 把大写字符转换为小写字符 ucase 把小写字符转换为大写字符 swab 交换输入的每对字节。 noerror 出错时不停止 notrunc 不截短输出文件。 sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐 磁盘拷贝: dd if=/dev/sda of=/dev/sdb 备份MBR: dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 破坏MBR中的bootloader: dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446 有二进制文件 fileA, size>2K。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换 128Bytes,请问如何实现? #dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc 备份: dd if=/dev/sdx of=/dev/sdy 将本地的/dev/sdx整盘备份到/dev/sdy dd if=/dev/sdx of=/path/to/image 将/dev/sdx全盘数据备份到指定路径的image文件 dd if=/dev/sdx | gzip >/path/to/image.gz 备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径 恢复: dd if=/path/to/image of=/dev/sdx 将备份文件恢复到指定盘 gzip -dc /path/to/image.gz | dd of=/dev/sdx 将压缩的备份文件恢复到指定盘 拷贝内存资料到硬盘 dd if=/dev/mem of=/root/mem.bin bs=1024 将内存里的数据拷贝到root目录下的mem.bin文件 从光盘拷贝iso镜像 dd if=/dev/cdrom of=/root/cd.iso 拷贝光盘数据到root文件夹下,并保存为cd.iso文件 销毁磁盘数据 dd if=/dev/urandom of=/dev/sda1 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后, /dev/sda1将无法挂载,创建和拷贝操作无法执行。 得到最恰当的block size dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file 通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小 测试硬盘读写速度 dd if=/root/1Gb.file bs=64k | dd of=/dev/null dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度 修复硬盘 dd if=/dev/sda of=/dev/sda 当硬盘较长时间(比如1, 2年)放置不使用后,磁盘上 会产生消磁点。当磁头读到这些区域时会遇到困难,并可 能导致I/O错误。当这种情况影响到硬盘的第一个扇区时 ,可能导致硬盘报废。上边的命令有可能使这些数据起死 回生。且这个过程是安全,高效的。
mount
1、挂载iso文件
dd if=/dev/sr0 of=/testdir/centos6.iso mount -o loop /testdir/centos6.iso /mnt/centos.ios vim /etc/fstab /testdir/centos6.iso /mnt/centos.ios iso9660 loop 0 0 mount -a mount
注意:mount -a 是/etc/fstab里新有了配置文件,执行一次mount -a新的配置可以生效。但是,要是修改配置文件的话mount -a则没有效果。这时候需要使用mount -o remount /dev/sd* 使用 loop 模式用来将一个档案当成硬盘分割挂上系统
2、mount -B /boot /mnt/boot或者:mount –bind /boot /mnt/boot
绑定目录到另一个目录上 注意:文件夹挂文件夹,在df下是看不到的。要mount才能看到 fstab的写法 /mnt/etc /mnt/usr none bind 0 0 实验:验证fstab文件是网卡启动之前挂载,还是之后挂载。 结论:如果fstab里面文件有错误,而且是要检测的话,系统就起不来了
这里建议写0
/etc/fstab 设备名出错,自检非0,开机会导致无法启动。 修复方法: 起不来系统会提示重启,还是继续操作,这时候输入root密码会进入系统。进去修改/etc/fstab文件。但这里修改好以后无法保存退出,因为文件是只读的。根里也不让修改。这时候重挂一下根mount -o remount,rw / 就可以修改/etc/fstab文件了,这时候系统就可以启动了。
swap分区挂载
注意:swap用mount是看不到的, swap对硬盘的要求会高一点,swap新的分区放在硬盘的最外道。sdc1或sdb1,分盘时用最前面的。 swap的创建
方法一:
1、fdisk -t 82 创建一个分区 2、mkswap /dev/sdc1 这一步是格式化(比较特殊)。执行这一步lsblk之后才能发现分区的类型变成swap。swapon /dev/sdb1 启动交换分区 swapoff /dev/sdb1 禁用交换分区 3、在配置文件里写 /dev/sdc1 swap swap defaults,pri=100 0 0(注意优先级) 4、swapon -a 读/etc/fstab 生效(swapon -s 可以先查看哪些交换分区有效) 5、free查看,swap变大了
注意:修改完优先级以后,要先swapoff /dev/sdb1,先禁用,再swapon -a 启用(注意:这里如果用swapon /dev/sdb1,则优先级就不会改变,因为这样就不会去读/etc/fstab文件了,所以一定要用swapon -a),这时才会生效
删除swap分区 swapoff /dev/sdb1 vim /etc/fstab 里删除对应的行 fdisk /dev/sdb 删除分区
方法二:(事实上,有时候会没有额外的分区当swap分区。所以可以用文件来当swap)
用文件创建swap分区 dd if=/dev/zero of=/testdir/partfile bs=1M count=1024 mkswap /testdir/swapfile blkid /testdir/swapfile vim /etc/fstab /testdir/swapfile swap swap pri=100 0 0 swapon -s 查看swap分区 swapon -a 读/etc/fstab 生效 swapon -s 查看swap分区 删除swap文件 swapoff /testdir/swapfile rm /testdir/swapfile 删除vim /etc/fstab里对应的 同样的用文件当分区 dd if=/dev/zero of=/testdir/partfile bs=1M count=1024 mkfs.ext4 /testdir/partfile blkid /testdir/partfile mkdir /mnt/partfile mount -o loop /testdir/partfile /mnt/partfile cd /mnt/partfile vim /testdir/partfile /mnt/partfile ext4 loop 0 0 写到配置文件里 这里实际上是一个文件,但用起来和分区一样,备份直接把文件拷走
centos6 实现loop 设备和文件关联
dd if=/dev/zero of=/testdir/bigfile bs=1M count=500 losetup /dev/loop7 /testdir/bigfile mkfs.ext4 /testdir/bigfile mount /dev/loop7 /mnt/bigfile/ losetup -a
练习
1、创建一个2G的文件系统,块大小为2048byte, 预留1%可 用空间,文件系统ext4,卷标为TEST,要求此分区开机后自 动挂载至/testdir目录,且默认有acl挂载选项
2、写一个脚本,完成如下功能: (1) 列出当前系统识别到的所有磁盘设备; (2) 如磁盘数量为1,则显示其空间使用信息; 否则,则显示最后一个磁盘上的空间使用信息;
原创文章,作者:15152188070,如若转载,请注明出处:http://www.178linux.com/42563
评论列表(1条)
文档功底相当不错,也非常认真,很出彩,加油