磁盘管理一

前言所需:

磁盘前段MBR(共512字节),其中bootloader占用446字节,分区表占用64字节,每一个主分区16字节,共4区或3+1区(只能有4个主或者3主+1扩展,扩展可以创建多个逻辑),最后两个字节决定了是否可引导,如果是5A(16进制),则可引导

-1  分区表操作

    fdisk [DEVICE]

    交互式命令:
    d: 删除一个分区
    n: 新建一个分区
    p: 显示当前的分区信息
    w: 保存退出
    q: 不保存退出
    l: 各分区类型所对应的System ID; 
      83:Linux
      82:Linux Swap,交换分区
      8e: LVM
      fd: Soft Raid
      t: 修改指定分区的System ID;

-2  分区表查看(此时查看的还是修改前的,因内核还未读取修改后的)

    cat /proc/partitions  

 

-3  RHEL5让内核重新读取分区表

    partprobe  /dev/sd[a-z]

   RHEL6让内核重新读取分区表

    partx  -a  /dev/sd[a-z][n]  /dev/sd[a-z] 

    若无法找到设备文件,则建议重新启动

-4  格式化分区,创建文件系统

    mkfs -t ext4 /dev/sd[a-z][n]

    or

    mkfs.ext4 /dev/sd[a-z][n]

    or

    mke2fs -t ext4 /dev/sd[a-z][n]

    mke2fs功能最强大,不过只能针对ext[n]

    mke2fs常用参数:

      -t 指定文件系统

      -b n  指定块大小 (不能修改,只能在此时决定)

        *块的大小取决于cpu的对内存页框的大小的支持,x86的默认页框是4K,故最小块大小为4K,所以,块的大小=4*2^n次方

        *块具体设置由所存储的文件数量大小决定,因为每一个块只能存储一个文件信息,故若文件多且小,则块设置大,浪费资源,故文件多且小,块就小,文件少          且大,块就大

      -L [label]  指定卷标名

      -m [n]  指定预留块在总空间中占用的比例 默认应该是5%,500M-1G足以

      -r [n]  指定预留块的数量

-5  文件系统属性修改

    tune2fs 

    -l: 显示文件系统(超级块)信息;(block size)
    -L label:重新设定卷标;
    -m [n]: 调整预留给管理使用的块所占据总体分区空间的比例;(大硬盘最好指定,因为默认的比例过大,资源浪费)
    -r [n]: 调整预留给管理使用的块个数;(Reserved block count)(与块大小有关,因为块大小设置过大,相对于同一个磁盘,则相同比例下块数量就下降)
    -o:设定挂载默认选项
    -O: 设定文件系统默认特性
    -E: 调整文件系统的扩展属性

-6  挂载分区

    --1  格式

    mount [-t fstype] DEVICE       MOUNT_POINT

    eg:mount -t ext4 /dev/sdb /mnt

    mount [-t fstype] LABEL="卷标"    MOUNT_POINT

    eg:mount -t ext4 LABEL="NEWPT" /mydata

    mount [-t fstype] UUID="UUID"    MOUNT_POINT

    --2  查看UUID、卷标、系统类型

    blkid /dev/sda[n]  查看sda1的uuid、卷标、系统类型

        

    *不能挂载到系统级目录,因为挂载其实就是将目录和分区建立关联,若一个分区下的一个目录有文件,则另一个分区挂载到此目录之后,次目录下的文件将不能被访        问(并不是删除,只不过不能访问,被隐藏了),若此目录是系统目录,那么系统命令将无法使用

    

    --3  mount -o的常用选项
    ro: 只读挂载;
    rw: 读写,默认即为读写;
    noatime: 关闭 更新 访问时间的功能;很重要的优化参数(包含nodiratime)
    auto: 是否能够由“mount -a”挂载;
    defaults:相当于rw, suid, dev, exec, auto, nouser, async, and relatime
    sync: 同步写入 (用户和内存进行交互的同时,就与硬盘进行同步,同步完成前,需等待)
    async:异步写入 (用户和内存先行交互,之后内存与硬盘进行同步,性能强)
    dev: 允许在此分区内创建启用设备文件(b和c)

    ………………………………………………………………………remount……………………………………………………………………………
    remount: 重新挂载

    mount -o remount,other_options DEVICE
    mount -o remount,ro /dev/sda3 #将sda3重新挂载成只读

    ……………………………………………………………………………loop………………………………………………………………………………
    loop: 本地回环设备;

    mount -o loop,other_options DEVICE MOUNT_POINT: 用于挂载回环设备(镜像,类似于win的虚拟光驱);

    eg:mount -o loop,ro /xxx.iso /mnt
    ……………………………………………………………………………noexec…………………………………………………………………………

    noexec 不允许挂载设备执行二进制程序(因U盘病毒含量大,故U盘不允许最好)

    ……………………………………………………………………………………………………………………………………………………………………

    -n: 挂载文件系统时,不更新/etc/mtab文件; (mount命令就是刷新/etc/mtab文件,此文件就是存储当前挂载的信息)
    -r: 相当于“-o ro”, 只读挂载

    mount -o ro /dev/cdrom /media
    cdrom一般为一个链接文件(l)


    cdrom --> sr0
    or
    cdrom --> hdc

    …………………………………………………………………无法umount的时候……………………………………………………………………

    很多时候挂载网络系统的时候,若无法卸载,可尝试以下

    fuser [MOUNT_POINT]:查看正在访问某挂载点的进程;

    fuser -km [MOUNT_POINT]: 强行杀死正在访问此挂载点的进程;

 

-7  /etc/fstab: 系统开机会自动挂载的文件系统

    --1  文件格式

    挂载的设备 挂载点 文件系统类型 挂载选项 转储频率 自检次序
    eg:/dev/sda3 /mydata ext4 defaults,noatime 0 0

    --2  详细描述

    挂载的设备:设备文件、卷标、UUID
    挂载点:
    文件系统类型:ext2, ext3, ...
    挂载选项:defaults表示使用默认选项,多个选项彼此间逗号分隔;
    转储频率:
        0: 从不备份;(自己挂载大多时候指定0)
        1:每日备份;
        2:每隔一天备份
    自检次序:系统出现意外,重启检测出现意外的文件是否完整
        0:不检测;
        1:第一个检测;一般只有根文件系统被第一个检测;
        2
        9
    ………………………………………………………………………自检……………………………………………………………………………………
    ext3开始,ext系列被称为日志文件系统,故索引先存于日志区域,若文件正常,则索引移植到索引区域,因此当出现意外的时候,只要日志区域存在的索引都是有问题     的,因为没来得及放入索引区域。所以检测速度很快;
    而ext2则没有日志区域,故只能对比所有文件,检测速度很慢;
    但是ext3以上的因为存在了日志系统,故索引条i/o了两次,所以性能有所下降
    ………………………………………………………………………全部挂载……………………………………………………………………………
    mount -a 挂载 /etc/fstab所有支持auto挂载选项的文件系统
    …………………………………………………………………………………………………………………………………………………………………
-8  交换分区:swap

    --1

    linux和windows交换分区的区别:

    linux上必须是独立分区,独立文件系统;而windows是放在系统磁盘上

    32位的最大线性地址空间为4G(3G的用户空间,1G的内核空间)

    每一个进程都会被告知自己拥有最大的线性地址空间,因此当实际物理内存不能够满足线性地址空间的时候,就会使用硬盘模拟成内存(交换分区)

    --2

    交换分区应该设置多大?
    科学计算类的服务器(批处理):交换内存可以尽可能大,比如为物理内存的2倍;
    应用程序类的服务器(web、数据库):交换内存尽可能小,比如只给1G;

    若不确定服务器使用类型:

    物理内存小于等于2G, swap=memory*2
    2G<memory<4G, swap=memory*1.5
    memory>4G, swap=4G

    --3

    修改分区属性,将其改为swap分区:

    fdisk /dev/sd[a-z]

    eg: fdisk /dev/sda

      输入t

      选择分区5,同时更改id为82

    创建交换分区:
    mkswap -L label device
    eg:mkswap -L newswap /dev/sda5

    --4
    启用交换分区:
    swapon DEVICE
    eg:swapon /dev/sda5
    swapon -a  启用所有交换分区

    --5

    禁用交换分区:
    swapoff DEVICE
    eg:swapoff /dev/sda5
    swapoff -a  禁用所有交换分区

    --6

    开机自动启用交换分区,可定义于/etc/fstab,挂载点:swap  文件系统类型:swap
    DEVICE swap swap defaults 0 0
    eg:LABLE="newswap" swap swap defaults 0 0

      --7

    dd命令 创建虚拟化交换分区

    dd if=/dev/zero of=/dev/swap.b bs=1M  count=500 

    mkswap -L newswap /dev/swap.b

      swapon /dev/swap.b

附:
如何内存大小:
free
-m: 空间大小换算为MB
-g: 空间大小换算为GB
shared: 共享内存
buffer: 缓冲
cached: 缓存

used-buffer-cached=真正使用内存

    

    

 

 

 

 

posted @ 2013-10-03 14:17  星空刺  阅读(303)  评论(0编辑  收藏  举报