文件系统

  文件系统包括:ext2 ext3 (比ext2多一个日志)ext4

                iso9660(光盘文件系统)

                vfat  (相当于windows中的fat32)

                swap(虚拟内存)

  与网络文件系统有关的:nfs  smaba

                        jfs  (日志文件系统)    gfs(群及文件系统

1.分区  ,格式化   ,挂载

MBR 主引导记录  512B(BOOTLOADER  446B  PARTION  64B  MAGIC  2B )

fdisk -l  查看磁盘现有分区

磁盘 id  83 表示是ext2/ext3

         82表示是swap

一个磁盘: 最多4个主分区 1个扩展分区

      /proc/内存和内核存储目录

ps -aux |less               查看所有进程

cat /proc/partitions        查看磁盘信息

init 6 重启

  partproble  磁盘文件 (partprobe /dev/sda)  [对分区进行识别]

  (cat  /proc/partitions)

2:创建文件系统的流程

        分区——》格式化——》挂载

  分区(重点了解)

  fdisk 指令 

       -l:列出指定硬盘的分区表

注意:对硬盘分区时,设备名称后不加数字

     只有root有权执行,最好在单人模式下操作

      正在使用的硬盘若无法顺利加载分区表,则需要先卸载正在使用的分区,然后重新进入fdisk界面重写分区表

用fdisk新建分区

fdisk  /dev/sdb:进入fdisk分区工具的操作界面

  按 n:新建分区,此时会询问用户创建何种类型的分区

  p、e、l:指定建立主分区、扩展分区或逻辑分区

  t:改变ID

  1-4:选择了分区类型后要求指定分区号,选择未用的号码,接着分别输入新建分区的初始磁柱号和终止磁柱号

fdisk  /dev/sdb:进入fdisk分区工具的操作界面,此时输入m可以查看指令列表

   p:显示当前分区表

   d:输入该指令后会要求指定要删除的分区号

   q:不保存刚才的操作指令,退出

   w:将输入的操作指令执行,修改分区表并退出

 做完之后执行——》portproble     让内核重新识别分区表

            也可以:init 6    重启一下

sfdisk(可以备份分区表)

  sfdisk -d 分区  >(重定向导入到)  一个文件

  sfdisk 分区 <(导出)   文件

格式化

  ext2   mkfs -t   mke2fs   mkfs.ext2

  ext3   mkfs -t   mke2fs   mkfs.ext3

swap   mkswap  swapon 

挂载

  临时挂载: mount -t 文件系统类型 -o 选项,选项  分区文件  挂载点

  查看挂载:mount    或者   df   -h(易读) -T(类型)

  永久性挂载:需要编辑填写 /etc/fstab

磁盘配额

1.vim  /etc/fstab  建立自动挂载   defaults后面加usrquota,grpqouta

2.重启 init 6   或者 mount  -a

3.quotacheck  -a (扫描所有分区)  -u (磁盘用户占用空间)  -g (组占用空间)         -v ( 详细信息)           -c (忽略旧文件)

          quotacheck -augvc

4.edquota(直接编辑)  -u     用户帐号 

                                 -g       组帐号

       -p  帐号1   帐号2     将帐号1的限制复制给帐号2

5.quotaon(激活)   分区文件     激活edquota -u user1

                quotaon /dev/sda6

6.vim /etc/rc.d/rc.local  编辑开机启动项

       $ dd if=/dev/zero of=f2.user1 bs=1M count=10      (创建文件)

脚本实现磁盘配额

1.显示分区  (编号   分区文件    大小)

2.提示输入做配额的分区

3.判断 在/etc/fstab,该分区是否挂载  若存在 sed 正行替换

sed `s&/dev/sda6.*&/dev/sda6 /mnt/6 auto defaults,usrquota 0 0&` /etc/

fstab

    不存在   echo  。。。。。>&gt;  /etc/fstab

4.mount  -a

5.quotacheck  -a  -u  -g  -v  -c

6.edquota  -u  用户帐号

           -g  组帐号

           -p  帐号1   帐号2

7.quotaon   分区文件

8.vim /etc/rc.d/rc.local

ln -s      软连接不占空间,可跨分区,查询方便

ln     硬链接占空间,不可跨分区

调整参数

tune2fs

   -j      创建日志

   -J     调整日志选项 

    size=journal-size                    设置日志大小

   device=external-journal            指明系统日志在哪个分区

tune2fs  -J siza=8  /dev/sda8       将磁盘日志更改为8M

   -c    调整挂在的次数

tune2fs  -c   0  /dev/sda8            设置最大挂载次数为0

   -i     调整时间间隔

tune2fs –i 30 /dev/sda8               每隔30天扫瞄一次

   -m    调整保留快百分比

tune2fs  -m 10 /dev/sda8             调整保留块大小为10%

   -l      查看

tune2fs –l   /dev/sda8                    查看信息

      -L   volume-label                           查看卷标

dumpe2fs                             查看详细信息

dumpe2fs /dev/sda8              查看磁盘是否格式化

mkfs -t ext2 /dev/sda5        将磁盘sda5格式化为ext2文件

fuser -km /mnt/7                结束/mnt/7上的所有用户

fuser -v /mnt/7                   查看/mnt/7上的用户信息

挂载

1.临时挂载

  mount  -t  文件系统类型  -o 选项1,选项n  分区文件  挂在点  

                           选项  ro(可读),rw(可读可写)

mount -o remount,ro /dev/sda5         重新挂载/dev/sda5并设置权限不可写入

mount -o remount,rw /dev/sda5      

      可写入(exec),noexec 

mount -o remount,rw,noexec /dev/sda5

     可执行(suid),nosuid

mount -o remount,rw,nosuid /dev/sda5

        nosuid只能以自己的身份执行

       (dev)可在该分区创建设备文件   nodev 可以创建设备文件但不能使用

ll  /dev/sd*       查看设备

      defaults=(包含 rw,exec,suid,dev)

      mknode   做节点(创建设备文件)

mknod /mnt/5/qq b 22 0        在/mnt/5下创建一个qq块设备

uname –r      查看内核版本

     内核版本2.4 每种设备一个文件

  内核版本2.4 之后   udev  (hotplug 拔插应用即插上就可以用)  /sys——》/dev

mount -t ext2 /dev/sda5 /mnt/5        将/dev/sda5重新挂载为ext2格式

2.永久挂载(自动)

       /etc/fstab   永久挂在位于的目录

分区标识/卷标     挂载点     文件系统类型      参数  dump的频率   fsck的顺序

对分区进行标识

      1.标识 (文件   /dev/sda7)

       2.卷标 

           e2label /dev/sda2                     查看/dev/sda2的卷标

           e2label  /dev/sda5   data           将/dev/sda5/卷标设为data

           mount LABEL=data /mnt/5        将/dev/sda5挂在到/mnt/5下

       blkid    查看所有的信息

         blkid /dev/sda5                      查看/dev/sda5的uuid

         blkid  分区     查看卷标或uuid

         findfs LABEL=<label>|UUID=<uuid>

      findfs LABEL=/                   根据卷标查看它代表哪个分区

3.uuid 

    dxdiag       查看计算机系统信息(在windows系统下使用)

      free –m         以M查看内存

      top               查看虚拟内存

交换分区(虚拟文件系统)

  a.使用分区(创建分区)

        id  82    虚拟文件系统id为82

  例如:

       fdisk /sev/sda     创建分区

    按  t              为磁盘重新设置id

     82           设置id为82

     按 w    保存退出

   partprobe /dev/sda              对/dev/sda重新识别

   cat /proc/partitions              查看内核参数

     格式化指令   mkswap  ---》swpon  (临时)  

    mkswap   /dev/sda5        格式化分区

   swapon   /dev/sda5        增加到现有虚拟内存中

   swapoff     /dev/sda5         从虚拟内存中移除

    swapon –s                   查看虚拟内存分布在那个分区上

    永久(/etc/fstab)   

        需要编写vim /etc/fstab

image

      编写完需要重启或者执行:mount –a    表示重新识别fstab文件  

  b.使用文件

       dd  if=/dev/zero  of=文件  bs=尺寸  count=数量

 例如: dd if=/dev/zero of=/swapfile bs=1M count=500

            新建一个文件大小为500M输入到/dev/zero输出到/swapfile

           mkswap   /swapfile      进行格式化

           swapon   /swapfile       临时增加内存

           free  -m

      要想永久性的增加需要编写vim /etc/fstab

image

几个特殊文件

    目录

  bin       存放可执行文件,所有用户都可执行

  sbin      放二进制程序指令,只有管理员能执行

  boot       挂在点.存放内核文件

  home      用户的家目录

  media      可插拔的设备挂载点,自动挂在目录

  misc         杂项目录,存放混乱文件

  opt        额外文件存放目录

  proc      内存和内核镜像

ll /lib/modules/2.6.18-164.el5/                  查看内核所支持的所有模块

du -sh /lib/modules/2.6.18-164.el5/          查看内核所有文件大小

vim /etc/grub.conf                                   编辑内核文件

ll /lib/modules/2.6.18-164.el5/                   查看额外的驱动

rpm -ivh httpd-2.2.3-31.el5.i386.rpm          安装http服务

rpm -qc httpd                     查看可配置文件

rpm -q --scripts httpd         查看安装过程执行的脚本

rpm -e httpd               卸载http服务

vim /etc/ld.so.conf        存放做系统调用应该查看那些文件

例如:  设置成其他人无法ping通自己

    [root@localhost ~]# cd /proc/

    [root@localhost proc]# cd net

     [root@localhost proc]# cd ipv4

     [root@localhost  ipv4]# echo "1" &gt; icmp_echo_ignore_all

数据存储的特性 

      1.效率   2.冗余

动态磁盘 (在windows中)

          1.简单卷       特点: 能动态的延伸尺寸

       2.跨区卷(2-32)          效率一般   无冗余

  3.带区卷(也叫raid 0)2-32 成员使用空间相同   数据等分64k  同时写入多个成员

                                      效率高   无冗余 容量只和

  4.镜像卷(也叫raid 1)  2块磁盘  利用率50%       冗余   写的效率一般   读取 快

5.raid 5卷(3-32)   利用率 n-1/n   写入时慢   读取(正常时快)(不正常时慢)

         在linux操作系统中      raid(0    1    5   6   10)

   硬件raid     raid 卡(一般是scsi接口)   在/dev/sd下

   软件raid      /dev/md0 1  2   驱动

在linux操作系统中实现的是软件raid:是通过MD多设备驱动来实现的

        在用户中用mdadm命令来实现的:

          语法格式:mdadm  【mode(模式)】 raiddevice(raid设备) 选项  成员

       五种模式:Assembe(装配模式)    Create(创建)    Foolow or Monitor(监控)

                              Grow(增长)     Manage(管理)

   cat /proc/mdstat      查看多设备状态

mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb{1,2}    创建一个sdb1,sdb2

mdadm --detail /dev/md0         查看/dev/md0详细状态信息

mdadm --fail /dev/md0 /dev/sdb1       将损坏磁盘/dev/sdb1设置为失效

mdadm --add /dev/md0 /dev/sdb3        增加一个新的成员sdb3

mdadm --remove /dev/md0 /dev/sdb1      删除成员sdb1

mdadm -S /dev/md0         停止设备/dev/md0的运行

mdadm -A /dev/md0 /dev/sdb2 /dev/sdb3       重新激活sdb2,sdb3

mdadm --detail –-scan         对设备信息扫描

mdadm --detail --scan &gt;&gt;/etc/mdadm.conf        

                                将扫描信息输入到/etc/mdadm.conf

cat /etc/mdadm.conf          查看扫描信息

mdadm -A –s         跟据/etc/mdadm.conf 内的扫描信息进行激活

raid 实现的两种方法: 

例如:实现raid 5

mdadm -Cv /dev/md1 -a yes -l 5 -n 3 -x 1 /dev/sdb{5,6,7,8}

        自动创建sda5,sda6,sda7,sda8 3个有用一个空余设备文件

磁盘分区

fdisk /dev//sdb 磁盘分区

n 增加分区

(1-4)  数字

+size(数字) 增加多大的磁盘分区

p 查看

t 改变磁盘分区的ID 

(1-4)  数字

fd  把ID数改为fd

p 查看

w 保存并退出

partprobe  /dev/sdb  重新读取磁盘分区表

Mdadm -Cv /dev/md0 -l 1 -n 2 -x 1 /dev/sdb{1,2,3}

Cat /proc/mdstat  查看状态

Mdadm --detail /dev/md0  查看详细的磁盘分区状态

Mkfs -t ext3 dev/md0   格式化磁盘

Mkdir /mnt/1  创建挂载点

Mount dev/md0 /mnt/1  挂载

Df -h 查看大小

然后进入cd /mnt/1   复制一些东西尽量的多一些cp -a -r  目录   目录

                    也可以用 dd if=/dev/zero  of=文件 bs=1M count=300

Mdadm --detail /dev/md0

Mdadm -f  /dev/md0 /dev/sdb1                把sdb1失效

Cat /proc/mdstat    查看状态     (先前如果复制的多的话可以看到替换的进程)

wps_clip_image-8008

wps_clip_image-17186

删除(剔除)失效的磁盘设备

mdadm -S /dev/md0   停止/dev/md0设备

Fuser -km /mnt/md1   剔除正在挂载点运行的东西

Umount /dev/md0   先卸载设备

mdadm -S /dev/md0   再停止/dev/md0设备

Cat /proc/mdstat

Mdadm --detail /dev/md0

Mdadm -A  /dev/md0   /dev/sdb2 /dev/sdb3   重新装备起来

如果你记不清或者成员较多时用

Mdadm --detail --scan  查看查看

Mdadm --detail --scan &gt;&gt;/etc/mdadm.conf

               把查看的东西输入到/etc/mdadm.conf这个文件中

Cat /etc/mdadm.conf  打开扫描的结果

mdadm -S /dev/md0

Mdadm -A -s  把刚刚扫描的结果重新装备起来

其中Raid 5 需要三个激活成员和一个后备成员

partprobe  /dev/sdb  重新读取识别磁盘分区表

Mdadm -Cv /dev/md0 -l 5 -n 3-x 1 /dev/sdb{5,6,7,8}

Mdadm -D /dev/md1  查看详细设备情况

lvm  逻辑卷管理器

作用:  1:动态改变分区大小    2:分区时非常的灵活

   创建物理卷 pvcreate

           卷组  vgcreare

         逻辑卷 lvcreate

   查看物理卷pvdisplay

          卷组  vgdisplay

        逻辑卷 lvdisplay

   移除物理卷 pvremove

          卷组  vgremove

        逻辑卷 lvremove

改变卷的大小

先进行添加磁盘分区,再改ID(L可以查看id号,逻辑卷是8e),重新读取磁盘分区。

    改变逻辑卷的大小

如下图:

wps_clip_image-295

  先创建pvcreate(物理卷)    /dev/sdb{数字}

   Vgcreare  testvg(卷组名新的) /dev/sdb/9  /dev/sdb/10

       Vgdisplay  查看一下

Lvcreate  -L  400M(大小)  -n  testlv  testvg

      Lvdisplay

Mkfs -t ext3  /dev/testvg/testlv   格式化

wps_clip_image-872

然后进入目录复制一些东西

增加逻辑卷的大小(例如:从400 M增加到450M

Lvextend -L +50M  /dev/testvg/testlv

Df -h 查看一下(只是物理卷增加了,逻辑卷没有增加,还要)

Resize2fs /dev/testvg/testlv

Df -h (就会有的)

减小逻辑卷的大小(例如:从450 M增加到350M)

1.卸载   umount  /mnt/testlv

        Df  -h

2.强制文件系统扫描  e2fsck  -f  (fsck)

                e2fsck  -f  /dev/testvg/testlv

3.resize2fs 

         Resize2fs  /dev/testvg/testlv  350m

4.lvreduce

      Lvreduce  -L  350m  /dev/testvg/testlv

移除

Lvremove /dev/testvg/testlv

Lvdisplay  查看

在卷组上再增加一个物理卷11

  Vgextend(增加) testvg  /dev/sdb11

  Pvdisplay   /dev/sdb11   查看

  Lvcreate  -L 850M -n testlv testvg

  Lvdisplay  查看

  Mkfs -t ext3  /dev/testvg/testlv

  Mount  /dev/testvg/testlv  /mnt/testlv

  Df  -h

  Cd   /mnt/testlv/

  Dd if=/dev/zero of=f1 bs=1M count=500

  Ll -h

拆除刚刚进行的设备分区的所有

Cd

Umount /mnt/testlv/

Lvremove /dev/testvg/testlv

Lvdisplay

Vgremove testvg

Vgdisplay

Pvremove /dev/sdb{9,10,11}

Pvdisplay

备份

快照(在linux中是VM下的Snapshot)--&gt;&gt;相当于备份

当在逻辑卷中照快照(再备份)(不能超过10M)

例如: 

Fdisk -l

Pvcreate /dev/sdb{9.10}

Vgcreate testvg  /dev/sdb{9,10}

Lvcreate -L 300M -n testlv testvg

Lvdisplay

Vgdisplay

Mkfs -t ext3 /dev/testvg/testlv

Mount /dev/testvg/testlv /mnt/testlv

Df -h

Cd /mnt/testlv/

Cp /etc/passwd  ./

Cp /etc/inittab  ./

Ll

Cd

Lvcreate -L 10M -s -n snap-lv /dev/testvg/testlv

Mkdir  /mnt/snap

Mount  -o  ro ,remount  /dev/testvg/snap-lv  /mnt/snap

Cd /mnt/snap

Ll  /mnt/testlv/ /mnt/snap/

备份

Dump -0u /dev/testvg/snap-lv -f  /tmp/dump.19

Ll /tmp/dump.19  查看备份文件

回复快照

Mkdir abc

Cd abc

Restore -r -f /tmp/dump.19

Ll