天天看点

文件系统管理

格式化相关命令

cat /proc/filesystems    查看当前内核所支持的文件系统类型

   没显示的未必不支持,只要以后内核装载了相应模块就能支持

mkfs            创建文件系统(扩展分区本身无法创建,其下逻辑分区可以创建)

   -tFSTYPE  分区

   mkfs -t ext2 /dev/sdb5     等于    mkfs.ext2 /dev/sdb5

   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.msdos   mkfs.vfat(FAT32)

mke2fs        专门管理ext系列文件系统的命令

   -jext3

   -b    BLOCK_SIZE    默认为1024、2048、4096

   -L    LABEL             制定分区卷标mke2fs -L MYDATE -m 3 /dev/sdb5

   -m   #                    制定预留给超级用户的块数百分比

   -i    4096                多少个字节一个INode,默认为8192,这里给出的数值应该为块大小,2^n倍数

   -n   #                     制定要创建INode的个数

   -F                          强制创建文件系统(在已经被挂载的时候使用)

   -E                          制定条带大小(条带=CHUNK/BLOCK)

blkid            查看设备基本相关属性

   UUID     硬盘多的时候可以应用,绝对唯一

   TYPE      文件系统类型

   LABEL    卷标

   形如    /dev/sdb5: UUID="88284dcb-082e-41f1-812e-c7852d87632a" TYPE="ext2

e2label        查看卷标或者设定卷标

   e2label /dev/sdb5 MYDD

tune2fs        调整文件系统的相关属性(当已经有数据的时候,无损调整)

   -j             调整到ext3

   -L            设定或者修改卷标

   -m    #    调整预留百分比,如果mke2fs时候忘了制定-m #

   -r            制定预留块数

   -o           设定默认挂在选项

                   acl

   -c    #      制定挂载次数达到#次之后进行自检,0或-1表示关闭此功能

   -i    #      每挂载使用多少天后进行自检,0或者-1表示关闭此功能

   -l            显示超级中的信息,很关键

dumpe2fs    非常详细,所有信息都列出来

   -h          只显超级块信息

fsck            检查并修复Linux文件系统

   -t    FSTYPE    指定文件系统类型不指可以,它能判断,但指错了就出事了

   -a                自动修复不询问,自动完成修复

e2fsck        专门修复ext系列文件系统

   -f            强制检测就算没有问题也检查一遍

   -p            默认选项是-p,也是自动修复,为了兼容fsck,也提供了-a

   -a            自动修复

                  RHEL 6 以后也能兼容 不过2变为4

挂载相关命令

注释:挂载可以将新的文件系统关联至当前根文件系统

mount                设备                挂载点(目录)

                         设备包括         设备文件/dev/sdb5

                                               卷标LABEL=“”

                                               UUIDUUID=“”

挂载点(目录)

   此目录没有被其他进程使用

   目录得事先存在

   目录中的原有的文件将会暂时隐藏

   挂在完成后,要通过挂载点访问对应文件系统上的文件

Usage:

mount [options][-o options] DEVICE MOUNT_POINT

   -a    表示/etc/fstab文件中定义的所有文件系统

   -n    默认情况下,mount命令每改在一个设备,都会把挂载的设备信息保存至/etc/mtab文件

   -n    表示挂在设备时,不写入此文件

   -t    FSTYPE制定正在挂载设备上的文件系统类型,默认不写会它会调用blkid命令获取类型

   -r    只读挂在挂载光盘时常用此选项

   -w  读写挂在默认是读写挂载

   -o   制定额外的挂在选项,也制定文件熊

       async        异步写入没有直接保存至硬盘中默认不写就是异步

       atime        频繁访问就会磁盘产生磁盘IO

       noatime

       auto        自动挂载

       exec        限制二进制程序自动运行

       netdev    访问不到就跳过,否则别人机器不开机,你系统就启动不起来

       remount 重新挂载当前文件系统,卸载+挂载

       ro           挂载为只读

       rw          读写挂载

       sync       同步写入

       suid       不安全的做法,不要让外来设备启用suid

       nosuid

               mount /dev/sdb5 /mnt/test            读写

               mount -o remount,ro /dev/sdb5     重新挂载为只读

卸载相关命令

注释:卸载将某文件系统从当前根文件系统的关联关系移除

umount        设备     or   挂载点

                   挂载的设备没有被使用

练习

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>1、调整其预留百分比为3%</code>

<code>    </code><code>tune2fs -m 3 -L DATA </code><code>/dev/sdb5</code>

<code>2、以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验证其效果</code>

<code>    </code><code>stat </code><code>/backup/inittab</code>

<code>    </code><code>cat</code> <code>/backup/inittab</code>

<code>    </code><code>stat </code><code>/backup/inittab</code>    <code>有变化</code>

<code>    </code><code>mount</code> <code>-o remount,noatime </code><code>/backup</code>

<code>    </code><code>stat </code><code>/backup/inittab</code>    <code>无变化</code>

<code>3、对此文件系统强行做一次检测</code>

<code>    </code><code>e2fsck -f </code><code>/dev/sdb5</code>

<code>4、删除复制而来的所有文件,并将此文件系统重新挂载为同步(</code><code>sync</code><code>),而后再次复制</code><code>/etc</code><code>目录</code>

<code>    </code><code>mount</code> <code>-o remount,ro,</code><code>sync</code> <code>/dev/sdb5</code>    <code>比异步慢太多了</code>

虚拟内存

虚拟地址,线性地址能实现在每个进程看来自己都拥有出内核占用内存以外的所有内存。

   内核自动维护着一张内存映射表,并且把每个进程使用的内存映射到真正物理内存并记录位置。

   每个进程都认为自己可以使用除内核占用内存以外的所有内存(虚拟地址),可真实物理内存有限。

   当真实物理内存填满又有新的进程请求以后,内核自动把那些很久没相应的进程占用的内存移至硬盘模拟的swap中。

   把移动至swap进程占用的物理内存空间赋予给新请求。

   当被移至swap的进程发起请求时候,内核会重复之前操作,找出很久每相应的进程移至swap中,并把地址赋予新请求。

   所以说一个进程被移至swap之后,下次请求使用的物理地址可能不一样,但进程感觉不到,只是不同物理地址的相同数据和大小

   允许了内存过载使用。

   pageout = swapin

   pagein  = swapout

buffers&amp;&amp;cached

   都是为了衔接两个速度不同的设备,只是衔接方式目录不相同,加速操作系统进程。

   buffers为了避免过慢的设备遭到冲击

       元数据    /var/log/message    查找过程的缓存    内存对应文件路径

   cached重复使用数据

       数据    /var/log/message    message数据块保存在内存中page

    进程使用直接找内存,保存也保存在内存中

                   进程关闭同步内存数据对硬盘相关

创建swap分区

   首先要用fdisk         调整分区类型为82

   mkswap /dev/sdb5

               -L    LABEL

   swapon /dev/sdb5    启用交换分区

               -a    启用所有定义在/etc/fstab文件中的交换设备

   swapoff /dev/sdb5关闭交换分区

当磁盘已经没有空闲分区可以创建交换分区,但某些分区还有很多空间可以使用的时候,如何创建交换分区?当前主机上交换分区已经不够用了,应该怎么办?

回环设备

   loopback,使用软件模拟实现硬件

cp和dd的区别

   cp    以文件为单位先通过VFS接口道内存,再把文件复制到相应位置

   dd    底层的数据流直接复制01代码

   dd if=SRCof=DES

   dd if=/etc/inittab of=/path/to/somefile

   bs=1024字节

   count一共复制多少这样的字节

备份MBR(一个硬盘最开始出的512字节)

   dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count1

还原MBR

   dd if=/mnt/usb/mbr.backup of=/dev/dsa bs=512 count1

制作磁盘镜像

   cat /dev/cdrom &gt; /root/rehel5.iso

创建镜像文件1G大小,并变为swap分区使用

   dd if=/dev/zero of=/var/swapfile bs=1M count=1024    创建1G大小的镜像文件

   mkswap /var/swapfile    将此文件变为swap类型(如果磁盘分区需要使用fdisk 调整分区类型为82),这里不需要。

   swapon /var/swapfile    将此文件添加进swap中

   这个性能更差,不过江湖救急可以使用,哈哈。

   /dev/null    数据黑洞

   /dev/zero    0输出器

   dd if=/dev/zero of=/var/swapfile bs=1M count=1024

       seek    跳过已经创建文件

   dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1M

       创建一个1024M文件,只不过前面1023M是假的,跳过去。

   ls -lh /var/swapfile2     显示1G

   du -h  /var/swapfile2    显示1.1M

mount命令挂载ios镜像

   mount -o loop /tmp/rhci-5.8-1.iso  /media/

               -o loop    挂载本地回环设备

文件系统的配置文件    /etc/fstab    自动挂载

   OS在初始化时会自动挂在此文件中定义的每一个文件系统(格式如下)

   挂载设备              /dev/sdb5

   挂载点                 /mnt/test

   文件系统类型       ext3

   挂载选项             defaults

   转储频率(每多少天做一次完全备份)    0

   文件系统检测次序(只有根可以为1,0表示不检查)    0

fuser    验正进程正在使用的文件或套接字

       -v    查看某文件正在运行的进程

       -k    结束正在访问的文件进程(用户)

       -m  结束正在访问此挂载点的进程(用户)

       fuser -km /back/    终止正在访问此挂载点的所有进程

<code>1、创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理空间为磁盘3%,开机后可以自动挂在至</code><code>/data</code><code>目录,并且自动挂载的设备要使用卷标引进引用</code>

<code>    </code><code>mke2fs -j -m 3 -L MYDATA </code><code>/dev/sdbx</code>

<code>2、创建一个本地回环文件</code><code>/var/swaptemp/swapfile</code><code>来用于swap,要求大小为512MB,卷标为SWAP-FILE,且开机自动启用此交换设备。</code>

<code>    </code><code>mkdir</code> <code>/var/swaptemp</code>

<code>    </code><code>dd</code> <code>if</code><code>/dev/zero</code> <code>of=</code><code>/var/swaptemp/swapfile</code> <code>bs=1M count=512</code>

<code>    </code><code>mkswap -L SWAP-FILE </code><code>/var/swaptemp/swapfile</code>

<code>    </code><code>swapon </code><code>/var/swapfile2</code>

<code>3、上述第一问,如何让其自动挂载的 同时启用ACL功能;</code>

<code>    </code><code>/etc/fstab</code>

<code>    </code><code>LABEL=</code><code>'MYDATA'</code><code>/data</code> <code>ext3defaults,acl00</code>

注意:(高级设备可以使用裸设备)重新创建文件系统会损坏原有数据

本文转自 ftmoonfans  51CTO博客,原文链接:http://blog.51cto.com/soulboy/1265334

上一篇: 磁盘阵列RAID
下一篇: LVM

继续阅读