Linux的学习之路--4

磁盘管理

设备文件 :

1.磁盘文件的设备文件名一般都为  /dev/不同的文件名,目前在本人使用的VMware中则是 /dev/sda 。

2.在机械硬盘中的存储术语则分为如下:

   head:磁头 ;   track:磁道 ;   cylinder:柱面 ;   sector:扇区

   其中我们将 cylinder 、 head 、 sector 称之为磁盘的三围,并且每个sector的大小512bytes字节。

3.dd 命令

  dd if=原磁盘文件 of=指定路径 bs=1 count=n

  这个命令表示将原磁盘文件备份到指定路径,并且每次读取和写入1个字节重复n次

  dd if=/dev/zero of=原磁盘文件  (表示破坏磁盘文件)

  skip=n 是在备份或者恢复时对if后面的文件跳过n块开始

扫描二维码关注公众号,回复: 2627349 查看本文章

  seek=m 是在备份或者恢复时对of后目标文件跳过m开始写

4.磁盘分区时使用的命令:

   parted 支持msdos(MBR)和GPT

   fdisk  主要支持 msdos

   gdisk  主要支持 GPT

   其中parted创建分区是实时生效的,而fdisk与gdisk则需要手动进行磁盘分区的识别更新:

   在CentOS6中:执行 partx -a 接上需要重新识别的分区

   在CentOS7中:执行partprobe 接上需要重新识别的分区

===========================================================================

文件系统 :

(操作系统中负责管理和存储文件信息的软件结构称为文件管理系统)

1.  Linux中常用的文件系统:ext2、ext3、ext4、xfs、swap

2.  创建文件系统:

   mkfs.或者mkfs -t“接上需要创建的文件系统类型” /dev/device(设备)

   mke2fs只支持ext系列(创建命令仍为mke2fs -t)

   其中创建时使用 –L 选项,则是可以为设备文件指定一个卷标(名字)

   e2label      /dev/device      查询此设备文件的卷标

                   /dev/device +指定的名字        改卷标为指定名字

    (此命令是管理ext系列文件系统)

3.  tune2fs 可对ext系列文件系统进行参数重调

    -L 'LABEL':修改卷标

    -U UUID: 修改UUID号

4.mount  +参数选项 + 需要挂载的设备文件 + 挂载点

      -tvsftype:指定要挂载的设备上的文件系统类型

      -r: readonly,只读挂载

      -w: read and write, 读写挂载

      -n: 不更新/etc/mtab,mount不可见 

            cat/proc/mounts 可以看到用-n所隐藏的挂载信息

      -a:自动挂载定义在了/etc/fstab文件中尚未挂载的文件系统,(且挂载选项中有auto功能)

5.mount -o 后面加上一些参数信息,可以在挂载时设定相关内容,如下:

    ro 只读      rw 读写

    async|sync           异步或同步传输

    atime|noatime        目录和文件的访问时间是否更新

    diratime|nodiratime  目录的访问时间是否更新

    auto|noauto          是否可以使用mount -a 自动挂载

    exex|noexec          是否运行应用程序,无论是否有x权限

    dev|nodev            是否可以在该文件系统上使用dev设备

    suid|nosuid          是否支持suid和guid权限

    remount             重新挂载,要在后面具体指挂载选项,如不指定,重新挂载为默认权限

   nouser|user         是否允许写入/etc/fstab中的挂载项目让普通用户执行以进行挂载及卸载

其中mount默认的权限(defaults)是:rw, suid, dev, exec, auto,nouser, async

6.一些查看文件系统的相关命令,如下:

   blkid     查看块设备属性信息

             “-L + 卷标名”或者“-U + UUID号”  查询对应的设备

   findfs  +“LABEL=卷名”  或者 “UUID=指定号”   查询分区

   e2label + 分区     可查看分区卷标

               + 分区 + 名字   可将该分区的卷标改为设定的    (同理tune2fs –L +名字)

   findmnt +挂载点或者分区    显示相关分区的挂载信息

   lsof +挂载点       查看正在访问指定文件系统的进程

                            如果要结束进程则可以使用  kill +进程号

===========================================================================

高级文件系统

1,Raid阵列

   Raid分为条带和镜像两种方式

   软raid(在虚拟机上)的实现

   mdadm

    -C: 创建模式

        -n #: 使用#个块设备来创建此RAID

        -l #:指明要创建的RAID的级别

        -a {yes|no}:自动创建目标RAID设备的设备文件

        -c CHUNK_SIZE: 指明块大小

        -x #: 指明空闲盘的个数

2.逻辑卷管理器LVM

   a.创建逻辑卷步骤:

   第一步: pvcreate + 块设备文件  (将块设备指定为物理卷)

   第二步: vgcreate + 设定的卷组名 + 物理卷(其中 -s 参数可指定大小)

   第三步: lvcreate –L “指定大小”  -n“设定的逻辑卷名” + 卷组名

   第四步: 使用mkfs命令创建文件系统

   第五步: mount +/dev/卷组名/逻辑卷名 + 挂载点

   b.逻辑卷的在线扩展

     情况1:卷组大小足够扩展

           方法:lvextend  -L“指定大小” /dev/卷组名/逻辑卷名

                    resize2fs  /dev/卷组名/逻辑卷名

                   (这里是将扩展后的逻辑卷重设文件系统)

         其中这两步骤可化为一步,如下:

                    lvextend -L“指定大小” -r  /dev/卷组名/逻辑卷名

     情况2:卷组大小不够扩展

                pvcreate + 块设备文件  (将块设备指定为物理卷)

                vgextend +卷组名 + 物理卷名

               lvextend  -L“指定大小” -r  /dev/卷组名/逻辑卷名 

  c.  缩减逻辑卷

  第一步:卸载     umount + 逻辑卷的挂载点

  第二步:扫描     e2fsck -f /dev/卷组名/逻辑卷名

  第三步:减小文件系统

               resize2fs + /dev/卷组名/逻辑卷名 + 指定要缩减的大小

  第四步:减小逻辑卷大小

               lvreduce –L “指定缩减大小”+  /dev/卷组名/逻辑卷名

   如果先对逻辑卷减小了指定大小,则需要将减小的大小加回去,然后继续执行  第二步、第三步和第四步

d.  若要跨主机迁移卷组,步骤如下:

    1.增加一个独立文件的虚拟磁盘到源主机

    2.将该磁盘做为PV(物理卷),扩展进卷组(vgextend +源卷组名 +PV)

    3.将所有数据都移动到将要拆卸的物理卷上

               pvmove +数据 + PV

    4.将源卷组设置为非激活

               vgchange -an 源卷组

    5.如果卷组中除了要拆卸的硬盘外还有其他的PV,则进行删除,如没有,直接第6步

              vgreduce +源卷组+ 要被移除的其他物理卷PV

    6.将源卷组设置为export状态

              vgexport 源卷组

    7.拔硬盘,并加到目标主机

    8.把 源卷组 设置为import

             vgimport 源卷组

    9.把源卷组设置为激活

             vgchange –ay 源卷组

    10.挂载

猜你喜欢

转载自blog.csdn.net/Ruixycowboy/article/details/80640030