• linux磁盘分区与管理详解


    linux磁盘分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。

    分区简介

    磁盘的组成
    磁盘由盘片,机械手臂,磁头,主轴马达组成,而数据的写入主要是在盘片上面,盘片上又细分为扇区与柱面两种单位,扇区每个为512bytes那么大其中,磁盘的第一个扇区特别重要,因为磁盘的第一个扇区记录了两个重要的信息:
    1、主引导分区(BMR):可以安装引导加载程序的地方,有446bytes。
    2、分区表:记录整块硬盘分区的状态,有66bytes。
    磁道:上图中硬盘被一圈圈分成18等分的同心圆,这些同心圆就是磁道,但打开硬盘,用户不能看到这些,它实际上是被磁头磁化的同心圆.这些磁道是有间隔的,因为磁化单元太近会产生干扰。
    扇区:每个磁道中被分成若干等份的区域.扇区是硬盘数据存储的最小单位。
    柱面:假如一个硬盘只有上图中的3个磁盘片,每一片中的磁道数是相等的.从外圈开始,这些磁道被分成了0磁道、1磁道、2磁道...具有相同磁道编号的同心圆组成面就称作柱面.为了便于理解,柱面可以看作没有底的铁 桶.从上图可以看出,柱面数就是磁盘上的磁道数.柱面是硬盘分区的最小单位.因此,一个硬盘的容量=柱面*磁头*扇区*512。
    簇:扇区是硬盘数据存储的最小单位,但操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理.每个簇可以包括2、4、8、16、32、64个扇区。

    磁盘分区表

    在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。
    假设上面的硬盘设备文件名为/dev/hda时, 那么这四个分区在Linux系统中的设备文件名如下所示,重点在于文件名后面会再接一个数字,这个数字与该分区所在位置有关:
    1)、P1:/dev/hda1
    2)、P2:/dev/hda2
    3)、P3:/dev/hda3
    4)、P4:/dev/hda4
    由于分区表只有64bytes而已,最多只能容纳四个分区,这四个分区被称为主或扩展分区 [3]  。根据上面的图示与说明,我们可以得到几个重要信息:
    1、其实所谓分区,只是针对那个64bytes的分区表进行设置而已。
    2、硬盘默认的分区表仅能写入四组分区信息。
    3、这四组分区信息我们称为主或扩展分区
    4、分区的最小单位为柱面
    5、当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。

    磁盘分区

    在Windows操作系统中,是先将物理地址分开,再在分区上建立目录.在Windows操作系统中,所有路径都是从盘符开始,如C://program file。
    Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认可分为3个分区,分别是boot分区swap分区和根分区。
    无论是Windows操作系统,还是Linux操作系统,每个分区均可以有不同的文件系统,如FAT32NTFSYaffs2等。
    (1)boot分区
    该分区对应于/boot目录,约100MB.该分区存放LinuxGrub(bootloader)和内核源码。用户可通过访问/boot目录来访问该分区.换句话说,用户对/boot目录的操作就是操作该分区。
    (2)swap分区
    该分区没有对应的目录,故用户无法访问。
    Linux下的swap分区即为虚拟内存.虚拟内存用于当系统内存空间不足时,先将临时数据存放在swap分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行。
    Ps:虚拟内存
    虚拟内存是指将硬盘上某个区域模拟为内存.因此虚拟内存的实际物理地址仍然在硬盘上.虚拟内存,或者说swap分区只能由系统访问,其大小为物理内存的2倍。
    (3)根分区
    在Linux操作系统中,除/boot目录外的其它所有目录都对应于该分区.因此,用户可通过访问除/boot目录外的其它所有目录来访问该分区。
    注意:
    (1)在Linux操作系统中,用户可根据需要进行修改分区.修改后的分区中,同一目录下的文件可能在不同分区中.比如/home目录下有a、b、c三个目录,可将不同的分区挂载到这三个目录下,这种操作是允许的。
    (2) 逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个) 逻辑分割(5号到63号), SATA硬盘则有11个) 逻辑分割(5号到15号)。 (鸟哥版的)
    不过根据最新的 linux内核技术规范 中指示,逻辑分区可以无限。
    <1>硬盘上至少有1个主分区
    <2>逻辑分区不能再进行分区。
    (3)Linux分区目录和"盘符"的关系:
    假如硬盘安装在IDE1的主盘,并用户想分区成6个可以使用的硬盘分区,则可以采用下面两种方式。
    方式一:采用3个主分区和3个逻辑分区
    方式二:采用1个主分区和5个逻辑分区
    当然还有其他的分区方式,只要满足上述说的规则就行
    安装Linux时,默认分为三个区,分别是/boot分区、根分区和swap分区.这三个分区分别对应的盘符是hda1、hda2、hda3。
    (4)Linux允许使用fdisk -l命令和df -h命令来查询其硬盘分区.其中,df无法显示出swap分区的大小。
    [root@localhost /]#df -h
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/hda2 8.8GB 3.1GB 5.3GB 38% / (根分区)
    /dev/hda1 99MB 9.2MB 85MB 10% /boot (boot分区)
    (5)在PC机下,A、B盘并不存在,这两个盘在Linux下类似于hda1/hda3,而C盘类似于hda2,D、E、F盘类似于hda5、hda6、hda7。
    (6)swap分区不对应"盘符"。
    (7)若硬盘的MBR已坏,则该磁盘就不能再作为引导盘,只能作为数据盘.因为MBR位于硬盘的起始处,用户不能通过软件进行修复,也不能跳过起始处.而硬盘中间的某个磁道坏了,用户可以软件修复,也可以跳过该磁道。

    嵌入式分区

    嵌入式系统可以分为4个区,分别是bootloaderparakernel、根分区等,与Windows、Linux分区不同 [4]  。
    (1)在嵌入式系统中,没有swap分区,只有实际的物理空间。
    (2)bootloader、para、kernel这三个分区的功能类似于Linux系统中的/boot分区,这三个分区分别存放嵌入式系统的启动代码和内核
    注:Linux系统中/boot分区内存放着linux启动代码和内核源码。
    (3)根分区(/)可以构造,其功能类似于Linux系统中的根分区.在这个分区中可以创建许多目录,比如/root、/home、/usr等,但不能创建/boot目录。
    (4)分区bootloader、para、kernel只能由地址来区分,而根分区只能由目录来区分。
    (5)嵌入式系统的驱动程序、上层软件都放在根分区.在嵌入式系统启动后,系统无法查看到bootloader、para、kernel这三个分区。

    Linux分区简介

    Linux的分区没有像Windows一样有什么C、D、E、F盘了。Linux中是文件目录挂载点的概念,简单点说就是按文件夹分区,比如我设置/home文件夹就是一个挂载点,占了10个G的空间,那就可以理解有一个10G大小的/home分区。而且Linux可以有未分配空间保留,那我们这些新手当然要留出一些空间留给以后的练习了。

    下面简单给大家介绍一下常见挂载点:

    一般来说,在linux系统中都有最少两个挂载点,分别是/(根目录)及 swap(交换分区),其中,/ 是必须的;

    建议挂载的几大目录:

    /-------根目录,唯一必须挂载的目录。不要有任何的犹豫,选一个分区,挂载它!(在绝大多数情况下 有2G的容量应该是够用了。当然了,很多东西都是多多益善的)

    swap----交换分区,可能不是必须的,不过按照传统,并且照顾到您的安全感,还是挂载它吧。它的容量 只要约等于您的物理内存就可以了,如果超过了您物理内存两倍的容量,那绝对是一种浪费。

    /home---这是您的家目录,通常您自己创建的文件,都保存在这里,您最好给它分配一个分区

    /usr----应用程序目录。大部分的软件都安装在这里,如果您计划安装许多软件,建议也给它分配一个分区

    /var----如果您要作一些服务器方面的应用,可以考虑给它分配一个较大的分区

    /boot---如果您的硬盘不支持LBA模式(不太可能),您最好挂载它,如果挂载,将它挂载在硬盘的第一个 分区,应该比较稳妥。一般来说,挂载的分区只要100M大小就足够了。

    关于挂载点情况(加粗为常用几种)

    目录                                                                                                             内容 
    /                                             根目录,存放系统命令和用户数据等(如果下面挂载点没有单独的分区,它们都将在根目录的分区中)  
    /boot                                          boot loader 的静态链接文件,存放与Linux启动相关的程序

    /home                                        用户目录,存放普通用户的数据

    /tmp                                           临时文件

    /usr                                            是Red Hat Linux系统存放软件的地方,如有可能应将最大空间分给它

    /usr/local                                   自已安装程序安装在此 

    /var                                            不断变化的数据,服务器的一些服务放在下面。

    /opt                                   附加的应用程序软件包 

    /bin                                             基本命令执行文件 
    /dev                                            设备文件 
    /etc                                             主机特定的系统配置 
    /lib                                              基本共享库以及内核模块 
    /media                                        用于移动介质的挂载点 
    /mnt                                             用于临时挂载文件系统或者别的硬件设备(如光驱、软驱) 
    /proc                  系统信息的虚拟目录(2.4 和 2.6 内核),这些信息是在内存中,由系统自己产生的。 
    /root                   root 用户的目录 
    /sbin                   基本系统命令执行文件 
    /sys                    系统信息的虚拟目录(2.6 内核) 
    /srv                     系统提供的用于 service 的数据

    /usr/X1186                       X-Windows目录,存放一些X-Windows的配置文件

    /usr/include                   系统头文件,存储一些C语言的头文件

    /usr/src                          Linux内核源代码,Linux系统所安装的内核源代码都保存在此

    /usr/bin                          对/bin目录的一些补充

    /usr/sbin                        对/sbin目录的一些补充

    /lost+found                 这个目录在大多数情况下都是空的。但是如果你正在工作突然停电,或是没有用正常方式关机,在你重新启动机器的时候,有些文件就会找不到应该存放的地方,对于这些文件,系统将他们放在这个目录下,就象为无家可归的人提供一个临时住所。

    /boot:                   必须总是物理地包含 /etc、/bin、/sbin、/lib 和 /dev,否则您将不能启动系统。典型的根分区需要 150–250MB 大小空间。

    /home:                 每个用户将放置他的私有数据到这个目录的子目录下。其大小取决于将有多少用户使用系统,以及有什么样文件放在他们的目录下。根据规划的用途,应该为每个用户准备 100MB 空间,不过应该按您的需求调整。假如您在 home 目录下计划保存大量的多媒体文件(图片、MP3、电影),该预备更多的空间。

    /tmp:                    程序创建的临时数据大都存到这个目录。通常 40–100 MB 应该足够。一些应用程序 — 包括归档处理程序、D/DVD 制作工具和多媒体软件 — 可能会使用 /tmp 临时保存映像文件。如果要使用这些程序,应该相应地调整 /tmp 目录的大小。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其它的部分更快地发生问题。 

    /usr:                  包含所有的用户程序(/usr/bin),库文件(/usr/lib),文档(/usr/share/doc),等等。这是文件系统中耗费空间最多的部分。您需要提供至少 500MB 磁盘空间。总容量会依据您要安装的软件包数量和类型增长。宽松的工作站或服务器安装应该需要 4–6GB。

    /var:                  所有的可变数据,如新闻组文章、电子邮件、网站、数据库、软件包系统的缓存等等,将被放入这个目录。这个目录的大小取决于您计算机的用途,但是对大多数人来说,将主要用于软件包系统的管理工具。如果做服务器的话空间应尽量大。我的服务器的实际分法及实际使用的大小,还没有实际投入使用。所以/var目录没有用那么多。一般WEB存放网页的目录是/var/www,postfix邮件的存放邮件的目录是:/var/mail,var/log,是系统日志记录分区, /var/spool:存放一些邮件、新闻、打印队列等。

    /opt:                  存放可选的安装的软件。

    上面介绍了几个挂载点,一般来说我们最少需要两个分区(当然只要一个分区也可以),需要一个SWAP分区,和一个“/”分区,但把一些常用、重要的挂载点分到其它分区,这样便于管理。一般一个/分区,一个/usr分区,一个/home 分区,一个/var/log分区。当然这没有什么规定,完全是依照需要来定的。我们可以使用Red Hat Linux提供的硬盘管理工具Disk Druid来完成分区和挂载点设置。

    服务器分区的方案: 
    分区类型      分区的实际大小 
    /               1G-2G                  (最少要150–250MB) 
    /boot        32M-100M                (启动分区,最多只要100M左右) 
    /opt          100M-1G                (附加应用程序) 
    /tmp          40M-1000M                (最大可以设为1G左右,如果加载ISO镜像文件就设为4G左右吧,一般不用那么多) 
    /home          2G-10G                  (每个用户100M左右,具体自定。用户目录。) 
    /usr           3G-10G                  (最耗用空间的部份。最少要500M左右,一般宽松的服务器要分到4-6G) 
    /usr/local        3G-15G                  (自已安装程序安装在此) 
    /var               &gt;2G--硬盘余下全部空间        ( 最少300M-500M,一般2-3G,做服务器的话把上面余下的空间都分给它) 
    SWAP分区    2G(内存为1G)

    分区的管理

    上面我们已经知道了分区最重要的就是挂载点的选择与管理。因为我们经常会遇到文件的增大,导致存储空间不足,这就需要增加磁盘来扩大存储空间。

    由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理。

    由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数据的情况。

    LVM基本介绍

    • 物理存储介质(The physical media)
    • 这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
    • 物理卷(physicalvolume)
    • 物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
    • 卷组(Volume Group)
    • LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
    • 逻辑卷(logicalvolume)
    • LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
    • PV(physical volume,PV)
    • 物理卷,它的文件格式不是ext4这些,而是具有LVM管理功能的LVM格式
    • VG(Volume Group,VG)
    • 卷组,卷组是在PV物理卷的基础上创建的,卷组是由一个或多个物理卷组成的,卷组可以在物理卷PV的基础上扩展和缩小。
    • LV(logical volume,LV)
    • 逻辑卷,在VG的基础上创建,可以进行格式化、可以创建文件系统、可以被挂载。对于用户相当于一个磁盘分区,不过实际上是在VG上逻辑出来的,可以在VG的基础上实现扩展和缩小,扩展的边界是不能超过VG的。
    • PE(Physical Extents)
    • 物理块、PE相当于block块,默认是4M,一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,VG是由这些PE块组成,也是VG可以自由扩展和缩小的关键原因。
    • LE(Logical Extent)
    • 逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应

     

     

    分类命令说明示例
    PV pvcreate 创建物理卷 pvcreate /dev/sdb1
    PV pvdisplay 显示已创建的物理卷的详细信息  
    PV pvs 显示已创建的物理卷的汇总信息  
    PV pvremove 删除物理卷 pvremove /dev/sdb1
    VG vgcreate 创建卷组 pvcreate vg1 /dev/sdb1 /dev/sdb2 …
    VG vgdisplay 显示已创建的卷组的详细信息  
    VG vgs 显示已创建的卷组的汇总信息  
    VG vgextend 扩展卷组 vgextend vg1 /dev/sdb3 …
    VG vgreduce 收缩卷组 vgreduce vg1 /dev/sdb5
    VG vgremove 删除卷组 vgremove vg1
    LV lvcreate 创建逻辑卷 lvcreate -L 1000M -n lv1 vg1
    LV lvdisplay 显示已创建的逻辑卷的详细信息  
    LV lvs 显示已创建的逻辑卷的汇总信息  
    LV lvresize 重设逻辑卷大小 lvresize -L 1000M /dev/vg1/lv1
    LV resize2fs 更新逻辑卷信息(ext4) resize2fs /dev/vg1/lv1
    LV lvremove 删除逻辑卷 lvremove /dev/vg1/lv1
    LV xfs_growfs 更新逻辑卷信息(xfs) xfs_growfs /dev/vg1/lv1

    LV

    e2fsck 检查逻辑卷错误(ext4)

    e2fsck -f /dev/vg1/lv1

    lvm逻辑卷组的管理

    建立逻辑卷组的命令参数

    pvcreate指令:创建物理卷

    【语    法】pvcreate [选项] [参数]

    【功能介绍】pvcreate指令用于将物理硬盘分区初始化为物理卷,以便被LVM使用。

    主要参数
    -f 强制创建物理卷,不需要用户确认
    -u 指定设备的UUID
    -y 所有的问题都回答“yes”
    -Z 是否利用前4个扇区
    pvcreate
    vgcreate指令:创建卷组

    【语    法】vgcreate [选项] [参数]

    【功能介绍】vgcreate指令用于创建LVM卷组。

    主要参数
    -l 卷组上允许创建的最大逻辑卷数
    -p 卷组中允许添加的最大物理卷数
    -s 卷组上的物理卷的PE大小
    vgcreate
    lvcreate指令:创建逻辑卷

    【语    法】lvcreate [选项] [参数]

    【功能介绍】lvcreate指令用于创建LVM的逻辑卷。

    主要参数
    -L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
    -l 指定逻辑卷的大小(LE数)
    -n 后面跟逻辑卷名 
    -s 创建快照
    lvcreate

    磁盘信息

    [root@www ~]# fdisk -l
    Disk /dev/hda: 41.1 GB, 41174138880 bytes
    255 heads, 63 sectors/track, 5005 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/hda1   *           1          13      104391   83  Linux
    /dev/hda2              14        1288    10241437+  83  Linux
    /dev/hda3            1289        1925     5116702+  83  Linux
    /dev/hda4            1926        5005    24740100    5  Extended
    /dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
    /dev/hda6            2053        2235     1469916   8e  Linux LVM
    /dev/hda7            2236        2418     1469916   8e  Linux LVM
    /dev/hda8            2419        2601     1469916   8e  Linux LVM
    /dev/hda9            2602        2784     1469916   8e  Linux LVM
    

     创建pv物理卷的一些操作命令

    [root@www ~]# pvscan     # 1. 检查有无 PV 在系統上,然后将 /dev/hda6~/dev/hda9 建立成为PV格式
      No matching physical volumes found    #找不到任何的 PV 存在!
    
    [root@www ~]# pvcreate /dev/hda{6,7,8,9}     # 将6-9分区转成pv,注意大括號的用途
      Physical volume "/dev/hda6" successfully created
      Physical volume "/dev/hda7" successfully created
      Physical volume "/dev/hda8" successfully created
      Physical volume "/dev/hda9" successfully created
    
    [root@www ~]# pvscan    #这就分別表示每个 PV 的资讯与系统所有 PV 的资讯。
      PV /dev/hda6         lvm2 [1.40 GB]
      PV /dev/hda7         lvm2 [1.40 GB]
      PV /dev/hda8         lvm2 [1.40 GB]
      PV /dev/hda9         lvm2 [1.40 GB]
      Total: 4 [5.61 GB] / in use: 0 [0   ] / in no VG: 4 [5.61 GB]
    
    [root@www ~]# pvdisplay    #更详细的列示出系统上面每个 PV 资讯
      "/dev/hda6" is a new physical volume of "1.40 GB"
      --- NEW Physical volume ---
      PV Name               /dev/hda6  #实际的 partition 分区名称
      VG Name                          #因为尚未分配出去,所以空白!
      PV Size               1.40 GB    #就是容量说明
      Allocatable           NO         #是否已被分配,结果是 NO
      PE Size (KByte)       0          #在此 PV 內的 PE 大小
      Total PE              0          #共分割出几个 PE
      Free PE               0          #沒被 LV 用掉的 PE
      Allocated PE          0          #尚可分配出去的 PE 数量
      PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
    ....(底下省略)....

    [root@www ~]# pvremove /dev/sdb2  #删除物理卷 
    Labels on physical volume "/dev/sdb2" successfully wiped 

    修改物理卷属性
    [root@www ~]# pvchange -x n /dev/sdb1    #禁止分配指定物理卷上的PE
    Physical volume "/dev/sdb1" changed  
    1 physical volume changed / 0 physical volumes not changed

    将一个或多个物理卷PV转变为一个卷组VG

    [root@www ~]# pvscan    #这就分別表示每个 PV 的资讯与系统所有 PV 的资讯。
      PV /dev/hda6         lvm2 [1.40 GB]
      PV /dev/hda7         lvm2 [1.40 GB]
      PV /dev/hda8         lvm2 [1.40 GB]
      PV /dev/hda9         lvm2 [1.40 GB]
      Total: 4 [5.61 GB] / in use: 0 [0   ] / in no VG: 4 [5.61 GB]
      
    [root@www ~]# vgcreate -s 16M vbirdvg /dev/hda{6,7,8}    #将/dev/hda6-8 建立成为一个 VG,且指定 PE 为 16MB
      Volume group "vbirdvg" successfully created
    
    [root@www ~]# vgscan   #确定存在这个 vbirdvg 的 VG 
      Reading all physical volumes.  This may take a while...
      Found volume group "vbirdvg" using metadata type lvm2
    
    [root@www ~]# pvscan   #有三个 PV 被用去,剩下一個 /dev/hda9 的 PV 沒被用掉!
      PV /dev/hda6   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
      PV /dev/hda7   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
      PV /dev/hda8   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
      PV /dev/hda9                lvm2 [1.40 GB]
      Total: 4 [5.57 GB] / in use: 3 [4.17 GB] / in no VG: 1 [1.40 GB]
    
    [root@www ~]# vgdisplay         # 最后那三行指的就是 PE 能够使用的情況!由于尚未切出 LV,因此所有的 PE均可自由使用。
      --- Volume group ---
      VG Name               vbirdvg
      System ID
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                3
      Act PV                3
      VG Size               4.17 GB     #整个 VG 容量就这么大
      PE Size               16.00 MB    #內部每个 PE 的大小
      Total PE              267         #总共的 PE 数量!
      Alloc PE / Size       0 / 0
      Free  PE / Size       267 / 4.17 GB
      VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
    
    [root@www ~]# vgextend vbirdvg /dev/hda9    #将剩余的 PV (/dev/hda9) 分配给 vbirdvg
      Volume group "vbirdvg" successfully extended
    
    [root@www ~]# vgdisplay
    ....(前面省略)....
      VG Size               5.56 GB
      PE Size               16.00 MB
      Total PE              356
      Alloc PE / Size       0 / 0
      Free  PE / Size       356 / 5.56 GB
      VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
    
    设置属性的卷组
    
    [root@www ~]# vgchange -ay vg1000    #将卷组"vg1000"设置为活动状态 
    logical volume(s) in volume group "vg1000" now active 
    
    删除逻辑卷组
    
    [root@www ~]# vgremove vg1000   #删除卷组"vg1000"
    Volume group "vg1000" successfully removed
    
    [root@www ~]# vgreduce vg2000 /dev/sdb2   #将物理卷"/dev/sdb2"从卷组"vg2000"中删除
    removed "/dev/sdb2" from volume group "vg2000" 

    从VG中创建逻辑卷

    [root@www ~]# pvscan   #有三个 PV 被用去,剩下一个 /dev/hda9 的 PV 沒被用掉!
      PV /dev/hda6   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
      PV /dev/hda7   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
      PV /dev/hda8   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
      PV /dev/hda9                lvm2 [1.40 GB]
      Total: 4 [5.57 GB] / in use: 3 [4.17 GB] / in no VG: 1 [1.40 GB]
    
    [root@www ~]# vgdisplay         # 最后那三行指的就是 PE 能够使用的情況!由于尚未切出 LV,因此所有的 PE均可自由使用。
      --- Volume group ---
      VG Name               vbirdvg
      System ID
      Format                lvm2
      Metadata Areas        3
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                3
      Act PV                3
      VG Size               4.17 GB     #整个 VG 容量就这么大
      PE Size               16.00 MB    #內部每个 PE 的大小
      Total PE              267         #总共的 PE 数量!
      Alloc PE / Size       0 / 0
      Free  PE / Size       267 / 4.17 GB
      VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
    
    
    [root@www ~]# lvcreate -l 356 -n vbirdlv vbirdvg    #将整个 vbirdvg 通通分配給 vbirdlv 啊,要注意, PE 共有 356 个
      Logical volume "vbirdlv" created
    
    [root@www ~]# ll /dev/vbirdvg/vbirdlv 
    lrwxrwxrwx 1 root root 27 Mar 11 16:49 /dev/vbirdvg/vbirdlv -> /dev/mapper/vbirdvg-vbirdlv  # 看见了沒有啊!这就是我们最重要的一步
    
    
    [root@www ~]# lvdisplay
      --- Logical volume ---
      LV Name                /dev/vbirdvg/vbirdlv  #LV逻辑卷的名字
      VG Name                vbirdvg
      LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0
      LV Write Access        read/write
      LV Status              available
      # open                 0
      LV Size                5.56 GB               #LV的大小
      Current LE             356
      Segments               4
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0

    格式化逻辑卷,并且挂载

    [root@www ~]# mkfs -t ext3 /dev/vbirdvg/vbirdlv    #格式化   格式有ext2.ext3,ext4,xfs等文件系统,按需格式化
    
    [root@www ~]# mkdir /mnt/lvm
    
    [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm  #挂载目录
    
    [root@www ~]# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/hda2              9920624   3858984   5549572  42% /
    /dev/hda3              4956316   1056996   3643488  23% /home
    /dev/hda1               101086     21408     74459  23% /boot
    tmpfs                   371332         0    371332   0% /dev/shm
    /dev/mapper/vbirdvg-vbirdlv
                           5741020    142592   5306796   3% /mnt/lvm

    [root@www ~]#vi /etc/fstab# 查看逻辑卷的UUID:最后一行就是逻辑卷的信息,把该行的UUID复制出来,不含引号。
    命令:blkid
    例:/dev/mapper/vbirdvg-vbirdlv: UUID="11262806-d796-4f49-8f08-897181e8ec33"
    
    # 编辑fstab: 在最后添加一行,输入如下内容:
    # 然后保存退出(:wq),重启后查看结果,如果能正常挂载就没有问题了。
    UUID=11262806-d796-4f49-8f08-897181e8ec33 /mnt/lvm                    ext3    defaults        0 0

    增加 LV 容量

    [root@www ~]# fdisk -l   
       Device Boot      Start         End      Blocks   Id  System
    ....(中间省略)....
    /dev/hda10           2785        3150     2939863+  8e  Linux LVM   #增加一下lvm /dev/hda10
    
    [root@www ~]# pvcreate /dev/hda10   建立新的 PV
      Physical volume "/dev/hda10" successfully created
      
    [root@www ~]# pvscan     #查看PG物理卷
      PV /dev/hda6    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda10                lvm2 [2.80 GB]              # 可以看到 /dev/hda10 是新加入,尚未使用
      Total: 5 [8.37 GB] / in use: 4 [5.56 GB] / in no VG: 1 [2.80 GB]
    
    [root@www ~]# vgextend vbirdvg /dev/hda10   #加大 VG ,利用 vgextend 功能
      Volume group "vbirdvg" successfully extended
      
    [root@www ~]# vgdisplay     #查看VG逻辑卷组
      --- Volume group ---
      VG Name               vbirdvg
      System ID
      Format                lvm2
      Metadata Areas        5
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               1
      Max PV                0
      Cur PV                5
      Act PV                5
      VG Size               8.36 GB
      PE Size               16.00 MB
      Total PE              535
      Alloc PE / Size       356 / 5.56 GB
      Free  PE / Size       179 / 2.80 GB
      VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
    
    
    [root@www ~]# lvresize -l +179 /dev/vbirdvg/vbirdlv   #利用 lvresize 的功能來增加LV
      Extending logical volume vbirdlv to 8.36 GB
      Logical volume vbirdlv successfully resized
    
    [root@www ~]# lvdisplay       #显示LV逻辑卷
      --- Logical volume ---
      LV Name                /dev/vbirdvg/vbirdlv
      VG Name                vbirdvg
      LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0
      LV Write Access        read/write
      LV Status              available
      # open                 1
      LV Size                8.36 GB
      Current LE             535
      Segments               5
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
    
    [root@www ~]# df /mnt/lvm     #查看大小
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/mapper/vbirdvg-vbirdlv
                           5741020    261212   5188176   5% /mnt/lvm
    
    [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv   #LV分区重设大小
    resize2fs 1.39 (29-May-2006)
    Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing 
    Performing an on-line resize of /dev/vbirdvg/vbirdlv to 2191360 (4k) blocks.
    The filesystem on /dev/vbirdvg/vbirdlv is now 2191360 blocks long.

    减小 LV 容量

    [root@www ~]# umount /mnt/lvm    #取消挂载
    
    [root@www ~]# e2fsck -f /dev/vbirdvg/vbirdlv  #磁盘检测
    e2fsck 1.39 (29-May-2006)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vbirdvg/vbirdlv: 2438/1087008 files (0.1% non-contiguous), 
    
    [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M  #重设大小
    resize2fs 1.39 (29-May-2006)
    Resizing the filesystem on /dev/vbirdvg/vbirdlv to 1766400 (4k) blocks.
    The filesystem on /dev/vbirdvg/vbirdlv is now 1766400 blocks long.
    
    [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm  #挂载LVM
    
    [root@www ~]# df /mnt/lvm
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/mapper/vbirdvg-vbirdlv
                           6955584    262632   6410328   4% /mnt/lvm
    
    [root@www ~]# lvresize -l -89 /dev/vbirdvg/vbirdlv      #降低 LV 的容量
      WARNING: Reducing active and open logical volume to 6.97 GB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
      Do you really want to reduce vbirdlv? [y/n]: y
      Reducing logical volume vbirdlv to 6.97 GB
      Logical volume vbirdlv successfully resized
      
    [root@www ~]# lvdisplay       #查看lv逻辑卷信息
      --- Logical volume ---
      LV Name                /dev/vbirdvg/vbirdlv
      VG Name                vbirdvg
      LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0
      LV Write Access        read/write
      LV Status              available
      # open                 1
      LV Size                6.97 GB
      Current LE             446
      Segments               5
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
      
    [root@www ~]# pvdisplay      #先确认 /dev/hda6 是否將 PE 都移除了
      --- Physical volume ---
      PV Name               /dev/hda6
      VG Name               vbirdvg
      PV Size               1.40 GB / not usable 11.46 MB
      Allocatable           yes (but full)
      PE Size (KByte)       16384
      Total PE              89
      Free PE               0
      Allocated PE          89
      PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
    ....(中間省略)....
    
      --- Physical volume ---
      PV Name               /dev/hda10
      VG Name               vbirdvg
      PV Size               2.80 GB / not usable 6.96 MB
      Allocatable           yes
      PE Size (KByte)       16384
      Total PE              179
      Free PE               89   
      Allocated PE          90
      PV UUID               7MfcG7-y9or-0Jmb-H7RO-5Pa5-D3qB-G426Vq
    
    [root@www ~]# pvmove /dev/hda6 /dev/hda10  #將 /dev/hda6 內的 PE 移动到 /dev/hda10
    
    [root@www ~]# vgreduce vbirdvg /dev/hda6   #將 /dev/hda6从vbirdvg 移出
      Removed "/dev/hda6" from volume group "vbirdvg"
    
    [root@www ~]# pvscan
      PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]
      PV /dev/hda10   VG vbirdvg   lvm2 [2.80 GB / 0    free]
      PV /dev/hda6                 lvm2 [1.40 GB]
      Total: 5 [8.37 GB] / in use: 4 [6.97 GB] / in no VG: 1 [1.40 GB]
    
    [root@www ~]# pvremove /dev/hda6    #移出物理卷hda6
      Labels on physical volume "/dev/hda6" successfully wiped

    快照区的建立

    [root@www ~]# vgdisplay       #查看VG容量
      --- Volume group ---
      VG Name               vbirdvg
    ....(其他省略)....
      VG Size               6.97 GB
      PE Size               16.00 MB
      Total PE              446
      Alloc PE / Size       446 / 6.97 GB
      Free  PE / Size       0 / 0  
    
    [root@www ~]# pvcreate /dev/hda6    #创建PV物理卷
      Physical volume "/dev/hda6" successfully created
      
    [root@www ~]# vgextend vbirdvg /dev/hda6    #将刚刚移除的 /dev/hda6 加入這個 VG
      Volume group "vbirdvg" successfully extended
      
    [root@www ~]# vgdisplay    #查看VG
      --- Volume group ---
      VG Name               vbirdvg
    ....(其他省略)....
      VG Size               8.36 GB
      PE Size               16.00 MB
      Total PE              535
      Alloc PE / Size       446 / 6.97 GB
      Free  PE / Size       89 / 1.39 GB   #多出了 89 个 可用PE
    
    [root@www ~]# lvcreate -l 60 -s -n vbirdss /dev/vbirdvg/vbirdlv    #利用 lvcreate 建立系统快照区,命名为vbirdss,且经于 60 个 PE
      Logical volume "vbirdss" created
    
    [root@www ~]# lvdisplay
      --- Logical volume ---
      LV Name                /dev/vbirdvg/vbirdss
      VG Name                vbirdvg
      LV UUID                K2tJ5E-e9mI-89Gw-hKFd-4tRU-tRKF-oeB03a
      LV Write Access        read/write
      LV snapshot status     active destination for /dev/vbirdvg/vbirdlv
      LV Status              available
      # open                 0
      LV Size                6.97 GB    #原LV的大小
      Current LE             446
      COW-table size         960.00 MB  #新建快照区的实际大小
      COW-table LE           60         #快照区占有的PE
      Allocated to snapshot  0.00%
      Snapshot chunk size    4.00 KB
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:1
    
    [root@www ~]# mkdir /mnt/snapshot
    [root@www ~]# mount /dev/vbirdvg/vbirdss /mnt/snapshot
    [root@www ~]# df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/hda2              9920624   3859032   5549524  42% /
    /dev/hda3              4956316   1056996   3643488  23% /home
    /dev/hda1               101086     21408     74459  23% /boot
    tmpfs                   371332         0    371332   0% /dev/shm
    /dev/mapper/vbirdvg-vbirdlv
                           6955584    262632   6410328   4% /mnt/lvm        #二个一样
    /dev/mapper/vbirdvg-vbirdss
                           6955584    262632   6410328   4% /mnt/snapshot   #二个一样

    如果想要删除物理卷,只需把操作倒过来操作一遍就好。

    删除挂在记录->删除逻辑卷->删除卷组->删除物理卷

    Linux 磁盘管理进阶

    磁盘的管理自然少不了磁盘工具的使用,window下的分区软件大家应该都知道,那linux系统下分区工具都有哪些呢?

    我这里就介绍几种在生产操作过程中用的工具,分别是fdisk、parted、gdisk。注:fidsk只能对2T以内的硬盘进行分区管理,2T以上的我们选择parted ,gdisk这两个工具,gdisk系统默认是没有安装的,我们需要可以直接安装它yum install gdisk -y。

    fdisk 命令使用

    -v  打印 fdisk 的版本信息并退出.
        
    -l   列出指定设备的分区表信息并退出。 如果没有给出设备,那么使用那些在 /proc/partitions (如果存在)提到的.
       
    -u  以扇区数而不是以柱面数的形式显示分区表中各分区的信息. -s 分区 将分区的 大小 (单位为块)信息输出到标准输出
        
    fdisk参数
    查看所有分区
    
    [root@localhost ~]# fdisk -l      
    
    Disk /dev/sda: 500.1 GB, 500107862016 bytes
    255 heads, 63 sectors/track, 60801 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          17      136552   83  Linux
    /dev/sda2              18         279     2104515   82  Linux swap / Solaris
    /dev/sda3             280       60801   486142965    5  Extended
    /dev/sda5             280       60801   486142964+  83  Linux

    fdisk分区

    [root@localhost ~]# fdisk /dev/sda    #分区时,不要加上数字
    The number of cylinders for this disk is set to 5005.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
       (e.g., DOS FDISK, OS/2 FDISK)
    
    Command (m for help): m        #可以查看帮助
    
    Command action
       a   toggle a bootable flag          #设定硬盘启动区
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition              #删除分区
       l   list known partition types      #列举已知分区
       m   print this menu
       n   add a new partition             #增加分区
       o   create a new empty DOS partition table
       p   print the partition table       #显示分区表
       q   quit without saving changes     #不保存退出分区
       s   create a new empty Sun disklabel
       t   change a partition's system id  #改变分区ID
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit    #保存分区操作
       x   extra functionality (experts only)
     
    Command (m for help): p  
    
    Disk /dev/sda: 41.1 GB, 41174138880 bytes        #磁盘名称和大小
    255 heads, 63 sectors/track, 5005 cylinders      #磁头、磁区与磁柱数量,多少
    Units = cylinders of 16065 * 512 = 8225280 bytes #每个磁柱的大小
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        1288    10241437+  83  Linux
    /dev/sda3            1289        1925     5116702+  83  Linux
    /dev/sda4            1926        5005    24740100    5  Extended
    /dev/sda5            1926        2052     1020096   82  Linux swap / Solaris
    
    Command (m for help): q   # q是不保存退出,w不要随便输入

    Parted命令使用

    用法:parted [选项]… [设备 [命令 [参数]…]…]
    
    T级别分区的命令。将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行。
    选项:
    -h, –help                    显示此求助信息
    -i, –interactive             在必要时,提示用户
    -s, –script                  从不提示用户
    
    -v, –version                 显示版本
    parted参数
    命令:
    
    
    检查 MINOR                   对文件系统进行一个简单的检查
    cp [FROM-DEVICE] FROM-MINOR TO-MINOR      将文件系统复制到另一个分区
    help [COMMAND]                打印通用求助信息,或关于 COMMAND 的信息
    mklabel 标签类型              创建新的磁盘标签 (分区表)
    mkfs MINOR 文件系统类型       在 MINOR 创建类型为“文件系统类型”的文件系统
    mkpart 分区类型 [文件系统类型] 起始点 终止点      创建一个分区
    mkpartfs 分区类型 文件系统类型 起始点 终止点 创建一个带有文件系统的分区
    move MINOR 起始点 终止点      移动编号为 MINOR 的分区
    name MINOR 名称               将编号为 MINOR 的分区命名为“名称”
    print [MINOR]                 打印分区表,或者分区
    quit                          退出程序
    rescue 起始点 终止点          挽救临近“起始点”、“终止点”的遗失的分区
    resize MINOR 起始点 终止点    改变位于编号为 MINOR 的分区中文件系统的大小
    rm MINOR                      删除编号为 MINOR 的分区
    select 设备                 选择要编辑的设备
    set MINOR 标志 状态           改变编号为 MINOR 的分区的标志

    parted交互式分区

    [root@localhost ~]# parted /dev/sdb
    
    GNU Parted 2.1
    
    使用 /dev/sdb
    
    (parted) mklabel gpt    #parted命令需要更改分区表标签类型,创建新的磁盘分区表gpt                                                  
    
    警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?/Yes/否/No? yes                                                         
    
    (parted)                                                                  
    
    (parted) p                                                                
    
    Model: VMware, VMware Virtual S (scsi)
    
    Disk /dev/sdb: 1074MB
    
    Sector size (logical/physical): 512B/512B
    
    Partition Table: gpt
    
    Number  Start  End  Size  File system  Name  标志
    
    (parted) mkpart primary 0 100 #创建主分区100M,不带任何大小符号默认为M级别。
    
    警告: The resulting partition is not properly aligned for best performance.
    
    忽略/Ignore/放弃/Cancel? Ignore                                           
    
    (parted) p                                                                
    
    Model: VMware, VMware Virtual S (scsi)
    
    Disk /dev/sdb: 1074MB
    
    Sector size (logical/physical): 512B/512B
    
    Partition Table: gpt
    
    Number  Start   End    Size   File system  Name     标志
    
     1      17.4kB  100MB  100MB               primary


    parted非交互分区
     parted --script /dev/sdb mklabel gpt

    parted --script /dev/sdb mkpart primary 0 4800000

    parted --script /dev/sdb mkpart primary 4800001 5800001

    parted --script /dev/sdb mkpart primary 5800002 5804098 

    gdisk命令使用

    (1).选项
    
    -b <size>  指定扇区大小(512,1024,2048或4096 B)
    -c  关闭DOS兼容模式
    -u <size>  以扇区编号取代柱面编号来表示每个分区的起始地址,一般与-l选项联合使用
    -C <number>  指定柱面编号
    -H <number>  指定磁头编号
    -S <number>  指定磁道扇区编号
    gdisk参数

    gdisk命令跟fdisk命令差不多,所以我这里只贴出菜单选项

    菜单操作说明:
    
    a 设置可引导标记(活动分区/引导分区之间切换)
    b 编辑BSD磁盘标签
    c 设置DOS操作系统兼容标记(兼容/不兼容之间切换)
    d 删除一个分区
    l 显示已知的分区类型,其中82为Linux swap分区,83为Linux分区
    m 显示帮助信息
    n 增加一个新的分区
    o 创建一个新的空白的DOS分区表
    p 显示磁盘当前的分区表
    q 退出fdisk程序,不保存任何修改
    s 创建一个新的空白的Sun磁盘标签
    t 改变一个分区的系统ID,就是改变分区类型(比如把Linux Swap分区改为Linux分区)
    u 改变显示或输入单位
    v 验证磁盘分区表
    w 将分区表写入磁盘并退出(保存并退出)
    x 额外功能(专家级)
    
    扩展
    
    sda和hda的区别
    
    sd代表的是SCSI,SATA接口硬盘
    hd代表IDE接口的硬盘
    sda和hda最后面的a都代表的是第一块硬盘
    sda1和hda1则代表的是该硬盘的第一分区

    其他分区命令


    通知系统分区表的变化

    命令:partprobe

    参数:

    • -d,—dry-run实际上不会通知操作系统打印内容摘要
    • -h,—帮助显示此帮助并退出
    • -v,—版本输出版本信息并退出

    其他:

    如果生成设备文件失败,可以使用如下命令再次生成

    partx -a /dev/XXX

    注:如果还是失败就请重启系统。


    查看设备分区的UUID与类型

    命令:blkid

    命令:blkid 设备名称


    Swap 分区创建命令

    • Linux mkswap命令用于设置交换区(swap area)。
    • mkswap可将磁盘分区或文件设为Linux的交换区。

    语法:

    mkswap [-cf][-v0][-v1][设备名称或文件][交换区大小]

    参数

    • -c 建立交换区前,先检查是否有损坏的区块。
    • -f 在SPARC电脑上建立交换区时,要加上此参数。
    • -v0 建立旧式交换区,此为预设值。
    • -v1 建立新式交换区。
    • [交换区大小] 指定交换区的大小,单位为1024字节。

    开启SWAP分区

    Linux swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存。

    语法:

    /sbin/swapon -a [-v]
    /sbin/swapon [-v] [-p priority] specialfile ...
    /sbin/swapon [-s]

    参数:

    • -h 请帮帮我
    • -V 显示版本讯息
    • -s 显示简短的装置讯息
    • -a 自动启动所有SWAP装置
    • -p 设定优先权,你可以在0到32767中间选一个数字给他。或是在 /etc/fstab 里面加上 pri=[value] ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用 swapon -a 来启动他们,而且有优先权设定

    关闭SWAP分区

    Linux swapoff命令用于关闭系统交换区(swap area)。

    swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。

    语法:

    swapoff [设备]

    参数:

    • -a 将/etc/fstab文件中所有设置为swap的设备关闭
    • -h 帮助信息
    • -V 版本信息

    实例

    1、显示分区信息

    # sfdisk -l

    Disk /dev/sda: 1305 cylinders, 255 heads, 63 sectors/track
    Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
      Device Boot Start   End  #cyls  #blocks  Id System
    /dev/sda1  *   0+   12   13-  104391  83 Linux
    /dev/sda2     13  1304  1292  10377990  8e Linux LVM
    /dev/sda3     0    -    0     0  0 Empty
    /dev/sda4     0    -    0     0  0 Empty
    
    Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track
    
    sfdisk: ERROR: sector 0 does not have an msdos signature
    /dev/sdb: unrecognized partition
    No partitions found

    2、关闭交换分区。

    # swapoff /dev/sda2

    好了,分区管理整理就到这里哦!以后可能会补充,也欢迎其他作者补充!

  • 相关阅读:
    浏览器中复制不能复制的文档并使用word通配符进行高级替换整理
    windows找回映像文件“装载”快捷菜单
    python如何得到模块所在的目录
    搜狗五笔输入法自定义短语使用及设置
    启动office应用更新失败无法进入excel、word、visio的问题解决
    使用ssh登录windows10
    python的索引与切片
    python列表和元组的操作函数
    Python字符串的格式化
    与python字符串相关的一些函数
  • 原文地址:https://www.cnblogs.com/suixinnan/p/13235007.html
Copyright © 2020-2023  润新知