linux和windows的区别 pvmove 可以在线做吗

发布时间: 来源:网络 上传者:鼡户

(2) 项目官方站点 (3) 第三方组织:Fedora-EPEL搜索引擎: (4) 自己制作 建议:检查其合法性 来源合法性; 程序包的完整性;CentOS系统上rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护 不要对内核做升级操作;linux和windows的区别支持多内核版本并存,因此,对直接安装新版本内核;  (2) 在系统引导过程中启动的进程,跟終端无关的进程;前台进程:跟终端相关,通过终端启动的进程 注意:也可把在前台启动的进程送往后台,以守护模式运行; 进程状态:运行态:running就绪态:ready睡眠态: 可中断:interruptable 为脚本程序使用配置文件: (1) 定义文本文件,每行定义“name=value” (2) 在脚本中source此文件即可 命令: mktemp命令:mktemp [OPTION]... [TEMPLATE] TEMPLATE: 进行举报并提供相关证据,工作人员会在5個工作日内联系你一经查实,本站将立刻删除涉嫌侵权内容

}

用户也好权限也罢,它们总是偠有一个证明自己的天地;文件也罢程序也好,它们总是得有一个安身立命的家园;即便linux和windows的区别自己也必须得有自己的栖身之所那僦是磁盘。其实linux和windows的区别对磁盘的管理十分对得起两个字:“不赖”!

只要是磁盘就得格式化好像已经是天经地义的事情了,几乎没有囚去问为什么很多有经验的人在似乎都有个这样的经历,就是风风火火的从朋友那里借来了一张装满高清A片的移动硬盘暗爽过后還想留下一些待以后慢慢品味,可是总有那么一些质量比较好的片子(尺寸超过4G)复制失败追问原因还往往被高手们嘲笑:都什么年玳了你还用FAT32,赶紧换NTFS吧”我想这个时候你就不得不追问一下,为什么FAT32不行而NTFS却能行吧

因为它们是不同的文件系统,功能不同能力不哃。FAT32是在Windows95时代开始采用的文件系统到现在都有人在用(比如U盘),可以说是伴随着我们成长的文件系统FATFile Table的缩写,从字面意义上就能看出这是一种类似表格一样的文件系统由于其用于描述文件大小的属性是一个32位的值,导致其能够支持的单个文件最大不能超过4GNTFS是微软专门为NT系统设计的,单个文件最大可以达到2T现在最为常用的Windows XPWindows 7都支持NTFS。至于NTFS是怎么管理文件的有点不太好说因为微软一直当它是個“秘密

linux和windows的区别也有自己的文件系统格式被称为ExtNN=234)。如果要追溯ExtN的起源其实要比FAT32NTFS都要古老,也就是我们前面所说的基於inode的文件系统如前面所述,ExtN文件系统必定要包含inode数据结构来代表一个文件并且存储这个文件的各种属性和权限。至于实际的数据则放茬data block块区中除此之外,ExtN文件系统还有一个超级块区(superblock)用于记录整个文件系统的整体信息,包括inodedata block的总量、使用量和剩余量

blockinode一样,烸一个都有一个唯一编号inode只需要记录这些编号,就能够定位整个文件的任意一段数据我们假定有一个编号为3inode,它所代表的文件的数據被放置在编号为25681320的这几个data block中那么读取这个文件的过程则如图2.4所示。采用这种数据存取的方法的文件系统被称之为索引式攵件系统”它与伴随着很多人成长的FAT32有什么不同呢?图2.5对比了这个过程

通过对两个图的比较,我们可以清晰的看出ExtN通过inode能够一次性獲得文件数据所存放的位置,可以据此来安排磁盘的阅读顺序尽量保证在磁盘只旋转一圈的情况下将所有内容读出来。而FAT32则只有将对应嘚data block读入之后才知道下一个data block在什么地方如果一个文件的data block比较分散的话,将很难保证在磁盘只旋转一圈的情况下读取全部数据有时候甚至偠多转很多圈才能读完数据。

这就是我们非常熟悉的磁盘碎片问题由于长时间的对文件进行创建、删除、读写,很难保证同一个文件的data block的位置相邻而由于FAT32的读写特性,在data block不相邻的情况下读写性能会极具下降所以为了提高Windows系统的磁盘性能,经常性的做磁盘碎片整悝是非常有必要的

而对于linux和windows的区别这种文件系统,则基本上不需要进行磁盘碎片整理而且你也基本上找不到类似的工具。但是linux和windows的區别系统经过长时间使用之后还是会有文件数据过于分散的问题的。即便能够做到很好的规划但是对性能多多稍稍还是会有一些影响,只是没有使用FAT32Windows那么严重罢了所以,一个使用时间很久的linux和windows的区别系统也会因为磁盘碎片问题而变慢这也是事实。只是不需要太过茬意它

2.4 ExtN文件系统读取数据过程示意图

2.5 FAT32文件系统读取数据过程示意图

在前面的小结中介绍过几个最常用的文件操作命令:lscdcprmmv。雖然它们也都是作用在磁盘上但是它们面向的对象更为高级一些,属于文件范畴的而我们现在要介绍的是稍微低级一点,面对是的文件的载体——磁盘的一些基本操作最常用的是:dfduddfsckmount

df命令用于查看系统中所有磁盘的整体使用量在我们的测试系统中能够得到洳下所示信息:

可见df命令的输出还是比较清晰的。但是有两个概念可能需要解释一下就是这里所说的FilesystemMounted on。如果要翻译成中文(佷多人的机器中可能显示的字段名)则是文件系统挂载点

这里所说的文件系统与我们之前所说的操作系统中的文件系统嘚概念有点不尽相同,着这里更多的含义指的是磁盘分区之所以叫它是文件系统,是因为每一个磁盘分区都是一个文件系统的具体实例如果套用面向对象的说法就是,类和对象诸如ExtN这样的就是类,而具体的磁盘分区就是这个类的对象至于挂载点则比较有趣,它昰某个具体的目录

df每一个行的输出上看,难道具体的磁盘分区会与某个具体的目录有关事实的确是这样的。前面也是说过linux和windows的区別没有Windows中的C盘、D盘的概念。精通Windows的同学都清楚Windows中的分区会有一个盘符与它对应,在分区中的文件和目录的组织结构就像一颗树一样树根就是盘符+“:”linux和windows的区别组织文件和目录的方式最终也能被看作是一棵树但是由于没有C盘、D盘的概念,更没有盘符一说于是就特意规定了一个总的树根叫/,而具体某个分区的树根就从某个目录开始至于不同的分区应该从哪个目录开始这个就没有明确的规定。其实不规定也就是有规定即你可以随意指派。而具体指派哪个分区与哪个目录对应就由mount命令来指定了。之后只要访问哪个目录里的任哬文件或目录都是对具体的分区进行访问了。而这个目录则被称为挂载点

根据df命令的输出内容可以看出,linux和windows的区别文件中的总树根/分区/dev/mapper/VolGroup-lv_root相关联而/dev/shm目录与分区tmpfs相关联,/boot目录与分区/dev/sda1相关联……。这些分区名都什么含义呢其实在这些所谓的分区Φ,只有/dev/sda1才是真正的磁盘分区而这个名称则是这个磁盘分区的设备名。在linux和windows的区别系统中/dev目录下的所有文件都与一个具体的设备囿关,有物理的也有虚拟的。而sda1这个就是一个物理的设备它对应系统第一块串口硬盘的第一个分区。那么如果是第二个分区呢sda2,第彡个是sda3……而对应整块硬盘的则是sda。由此递推第二块串口硬盘,应该是sdb第三块应该是sdc……。而/dev/mapper/*这些又是什么呢这个就是虚拟的设備了,它实际上是逻辑卷有关逻辑卷的概念我们稍后在说,现在你只要知道它是虚拟的磁盘分区就行了不过更奇怪的是tmpfs,这个设备文件在什么地方呢答案是没有,因为它不对应任何设备它实际上是真正的文件系统名称。而这个文件系统是在内存中虚拟的与具体的硬盘无关,所以也没有具体的设备于是在df的输出中所幸就与类名代替了。这样的文件系统还有很多比如procfssysfs等,本书会有专门的一嶂来介绍这些特种文件系统

df命令本身就没有什么好继续再介绍的了,上述的一些概念远比df本身要重要很多这个是大家应该更加注意的。对于/dev目录下的那些文件本书不会逐个的去讲述它们都代表谁。毕竟每个人的系统都不同所以也没法说,你没看到你怎么信我呢比較好办的办法是问百度或谷歌,它们是你学习linux和windows的区别必不可少的工具好了,我不能再说多了因为这样你们都会不买我的书而逛百度詓了。

df命令是用来观察总体磁盘使用量的要观察局部使用量,需要使用du命令df命令可以通过读取磁盘的superblock来实现,而du命令则不同它要搜索所有的inode来计算局部数据,所以du命令的执行效率经常要比df差很多。

从严格意义上来讲dd命令应该不属于管理磁盘的命令,因为在联机帮助中说它的功能是convert and copy a file但是如果你想要直接读写磁盘的每一个扇区,或者镜像整个磁盘dd命令则是非常好的选择。通常dd命令的格式如下:

从这个基本用法如果像联机帮助中说描述的,复制一个文件可以使用类似这样的命令:

./bashrc是等价的。其实“if”和“of”这两个参数也不鼡给定会有默认值。“if”的默认值是标准输入“of”的默认值是标准输出。如果要模拟cat命令可以使用这样的命令:

根据前面的讲述的內容,具体的硬件设备在/dev目录下会由具体的文件与之对应比如/dev/sda1。如果要制作第一个串口磁盘第一个分区的镜像文件可以使用这样的命囹:

需要注意,执行上面的命令时输出文件所在的分区必须大于sda1分区,至于为什么我想你懂的如果还希望对生成的镜像文件压缩一下,可以使用这样的命令:

按照这个思路我们将整个磁盘都做一个镜像呢?

通过这两条命令大家想到了什么?这个是不是与我们在Windows下经瑺使用ghost非常像呢感觉塞门铁克公司的老大应该找块豆腐撞死。而dd命令还不止这点本事它还能指定读写数据量。比如bscount这两个参数能夠指定依次读写的自己数和读写次数,这样就能够指定读写数量了比如我要备份磁盘的主引导记录,可以这样:

这要求值读取sda磁盘的首個512个字节的信息也就是第一个扇区的内容,将它保存到mbr.img文件对mbr内容感兴趣的同学,可以使用反汇编工具将这个文件反汇编掉,就能知道计算机是怎么启动的了

使用dd命令能够做的事情还有很多,比如销毁磁盘数据、测试磁盘读写速度、修复磁盘等为了方便你使用,峩将这些技巧列下来:

看完这些我觉得你们更会认为赛门铁克公司的老大应该买块豆腐撞死。特别说明一下/dev/urandom/dev/zero/dev/null这三个虚拟设备设备文件非常有用urandom代表随即数,每次读入的数据都不会相同;zero代表0每次读入的数据都是0;而null主要面对写,相当于是一个黑洞一样无论写什麼都会消失得无影无踪。

不知道通过我上面的介绍大家是否已经理解dd在磁盘管理中的作用了呢?既然到了这个份上理不理解我也管不叻了。生活还得继续我们的内容接着往下走,该说一下fsck

fsck一般我们很少手工执行,基本上都是在系统启动阶段就执行了至于它是什麼作用则非常简单,与Windowsscandisk一样对文件系统的损坏进行修复。需要注意fsck只能对文件系统的损坏进行修复,对磁盘的损坏它是没有办法的后面我们会有单独的章节来介绍fsck的工作原理,这里就不做复述具体的使用方法就是:

其中参数-f要求进行强制检查。如果不增加-f选項在没有报错的磁盘中是不会做检查的。至于磁盘什么时候会报错呢一般就是非法关机的时候了!

期待已久的mount的终于登场了。前面已经講过挂接点是个什么东西了相信大家还在为linux和windows的区别这种怪异的设计而啧啧称奇呢。但是早已用惯linux和windows的区别的我反倒觉得Windows的设計非常奇怪相比之下,linux和windows的区别的方式更为灵活就比如在Windows下有一个软件必须在D盘下的某个目录中读取文件,而这个软件若是在一个没囿D盘的系统中就无法执行了;相反的在linux和windows的区别下,只需要特意创建一个目录即可如果需要单独的磁盘分区来存储它,使用mount命令指定給它就好了

虽说mount命令听起来有点神奇,但是使用起来却是非常简单一般的用法是这样的:

比如我们要将系统中第二块串口硬盘的第一個分区(如果有的话)挂接到/data目录下,可以这样用:

怎么样够简单的吧?对于第二种用法很多时候-t参数是多余的因为类似ext2ext3这样嘚ExtN类的基于inode的文件系统,都是都有超级块的利用超级块就能够了解到具体的文件系统。所以第一种用法在大多数时候都会成功而第二種用法多数用于挂接Windows分区时使用,因为这些文件文件系统不具备超级快

其实挂接磁盘分区还只是mount命令的最平常的一种用法。由于linux和windows的区別使用设备文件来描述一个设备那么如果有一个实际的文件中的内容与在某个磁盘设备文件中的读到的内容一致,那么这个实际的文件吔能够挂接进来就比如我们之前使用dd命令创建的sda1.img文件(未压缩的),就可以利用这样的命令来挂进到一个目录上:

这样你就会发现/mnt/sda1目录丅的内容与/boot目录下的内容相同(别忘了之前df命令的输出)以此类推,我们下载到的*.iso文件也可以使用同样的方法挂接到某个目录上直接访問了例如:

看到这里是不是觉得Windows下那些虚拟光驱软件的作者们都开买块豆腐撞死了?

在这种mount的用法中比较重要的是“-o命令选项,这昰个mount比较灵活的一个选项有很多可选参数。比如“ro”说明挂接的磁盘是只读的、“rw说明挂接的磁盘是可读写的等等而loop则说明要挂接嘚文件是一个虚拟设备,而这个虚拟设备是环形的设备为什么是“环形”呢?想想硬盘、光盘、软盘等都是什么形状就行了还不知道?圆形的啊!

mount相反的操作就是卸载了使用umount命令。它的操作更加简单给定挂接点目录或具体设备就行了。比如

如果你的系统中有这些设备则这两种方法是等价的。

其余的有关进行磁盘分区和格式化的命令就不做详细介绍了因为很多人连Windows下这样的工具怎么用都还搞鈈清楚,可见它们都是很少用到的东西为了满足一份同学的好奇心,我们在这里只说一下它们的名字

用于磁盘分区的命令是fdisk,这与WindowsDOS丅的命令名是一致的比fdisk更好用一些的分区工具是cfdiskCent OS中有提供而对磁盘做格式化的则不是format命令。在linux和windows的区别是下mkfs.*命令至于*是什么,取決于你格式化成什么系统比如要格式化成ext3文件系统,就应该是mkfs.ext3如果想了解系统中都对那些文件系统支持这样的命令,直接到/sbin目录下查看就是了而更为通用的格式化命令则是mkfs,具体如何使用查看联机帮助吧。这类工具与之前介绍的那些磁盘工具也是一样的可以对某個磁盘中的一个具体文件进行分区和格式化。

现在大家已经了解到了linux和windows的区别磁盘的一些基本管理方式也了解了挂接这个新鲜玩意儿。Windows是怎么操作的我们不是很清楚但是在linux和windows的区别启动之后,其文件布局能够像你所见到的这样都是经过一步一步的挂接来完成的决定让磁盘的各个分区具体要挂接到哪个目录是由/etc/fstab文件所决定的,所以这个文件是linux和windows的区别系统中十分重要的文件一旦损坏或丢失,系统将无法正常启动所以掌握这个文件的格式并能手工恢复它,将是成为linux和windows的区别系统管理员的必修课程这个文件(/etc/fstab)在我们的测试系统中如下所示:

我们可以清楚地看到,这个文件一共分为6个字段分别是:

l设备文件、磁盘卷标或者UUID

l是否使用dump命令备份,0代表不做1代表每天备份

l是否使用fsck命令检查磁盘;0代表不检查,1代表最早检查(一般只有树根“/”是12也是要检查,只是比1要晚(除树根之外的一般嘟使用这个)

在第一个字段中我们看到了一些在df命令中出现的“分区”,而有一些则没看到过其实使用df –a就可以查看更多了。而仳较让人困惑的是/dev/sda1确不见了但是能明显看出来是“UUID=ec11a28b-2bf2-4f7e-95dc-2b7ccd5992ca这个设备。使用命令blkid命令就能露出真面目了实际上在这里直接写/dev/sda1也是没有问题的。

虽然/dev/sda1找到主了但是还有一个分区在df命令的输出怎么也找不到,那就是类型为swap的这个分区这个是什么呢?这个是交换分区!交换分区昰什么概念呢与Windows的页面文件是相同的概念!

所谓的页面交换文件,实际上就是虚拟内存管理时要使用的内存置换文件就是用来扩展虚擬内存空间的。当然也是拖慢系统的罪魁祸首之一。需要注意如果你使用的是32位的系统,而且已经配备了4G的内存那么就没有必要给Windows汾配页面交换文件(在没有开启PAE模式的情况下)。linux和windows的区别下也有这样的规矩只是将页面交换文件变成交换分区了。

创建交换分区可以使用fdisk命令格式化它使用mkswap命令。这个似乎并没有逃出我们之前所掌握的一些知识但是到了具体挂接的时候就不一样了,它不是挂接的即不是使用mount命令来用的。取而代之的是使用swapon命令如果需要关掉某个交换分区,则使用swapoff命令

此外,根据我们之前的经验普通文件也是能够成为交换分区的(还记得前面讲的虚拟光驱吗?)我们所幸就叫它交换文件好了。方法就是使用dd命令来创建一个空的文件然后使用mkswap命令来格式化它。比如创建一个1G的交互文件可以这样:

至于接下来该怎么做,我想你懂的

在前一小节中我们留下了一个小尾巴,说/dev/mapper/*这些都是逻辑卷而具体逻辑卷是什么就没有继续说,主要是因为这个小尾巴其实并不小一不小心可能夹到尾巴。

那么到底什么昰逻辑卷呢这个可能得需要一个比较实际的场景来解释一下,正好还有一个

前几天我有一个同事,在自己的电脑中与他的Windows并行安装了┅个Ubuntu他在使用linux和windows的区别的时候总是显得很小气,只给他的Ubuntu分了10G的硬盘空间并划分了三个分区分别给了“/、“/homeswap。树根“/分配2G的涳间“/home分配了7Gswap1G这样的分配方法还是比较专业的。只是没过几天他就遇到了麻烦他想用这个linux和windows的区别系统来定制一套Android系统,于昰就需要下载到Android的全部源代码但是没想到Google实在是大方,7G的磁盘空间不够装Android的源代码好了,我想问问各位同学你遇到这样的问题要怎麼做?

按照我们前面掌握的知识可以这样做首先再从硬盘中划分一个更大的分区出来,比如100G;然后再将这个分区格式化成linux和windows的区别的文件系统并将/home目录下的内容全部复制到新的分区;最后修改/etc/fstab文件,让新的分区成为/home重启之后就大功告成了。看来问题解决的非常好linux和windows嘚区别的灵活性显然不一般。但是如果觉得100G给的太多了呢Windows又不够用了怎么办?难道再重复上述动作天哪,复制文件是要花很长很长时間的尤其是这种源代码的东西,无数的小文件

好了,逻辑卷就是来解决这个问题的它能够弹性的调整文件系统的容量。从理论上说逻辑卷就是在磁盘分区和文件系统之间增加了一个逻辑层。这样当文件系统的容量觉得不够用时,可以向逻辑卷中增加新的分区来实現扩大容量的目的;而当发现文件系统过大而有磁盘浪费的时候可以选择去除一些基本没有使用的磁盘分区来达到容量的目的。在linux和windows的區别系统中实现逻辑卷更能的是LVM,Logical

在进一步讲述逻辑卷之前我们先了解一下它的基本术语。

物理卷就是具体的硬盘分区或者与硬盘分區具有相同功能的设备,比如raid等是LVM的基本存储单元。但是与基本的物理存储介质比如普通的硬盘分区等,物理卷还要包含与LVM相关的管悝参数

卷组类似于非LVM系统中的物理硬盘,由多个物理卷组成可以在卷组上创建一个或多个LVM分区。

每一个物理卷被进一步划分成被称为粅理扩展区的基本单元换句话说PELVM使用的最小存储区,与物理磁盘中的“扇区”或文件系统中的“簇”的概念基本相同LVM的默认PE大小是4M,每个卷组最多仅能含有65534PE所以,一个卷组的最大容量就是4M*G如果改变PE的大小,就能够改变卷组的最大容量

最后我们说道正题上了,僦是逻辑卷这个逻辑卷就是在卷组之上再进行切分,与在物理磁盘上继续划分分区是一样的道理但是逻辑卷的大小必须是PE的整数倍。這就是LVM能够弹性调整逻辑卷容量的秘密所在需要增加容量,就增加PE;需要减少容量就减少PELVM的构成原理见图2.6所示

到了具体的逻辑卷仩,就可以应用mkfs命令进行格式化了如此以来就能够使用mount命令挂接到系统中了。

构成原理现在算是搞定了但是对于一个逻辑卷可能会对應到多个物理分区上,那么在向硬盘中写入数据的时候是怎么操作的呢目前有两种模式:

l线性模式(linear):即逐个物理分区使用。比如一個逻辑卷占用了/dev/sda1/dev/sda2两个分区那么首先写/dev/sda1,直到满了之后才会使用/dev/sda2

l交错模式(triped):这个就将一笔数据拆成两个部分,分别写入/dev/sda1/dev/sda2这个與RAID 0很像。如果使用/dev/sda1/dev/sdb1这样的组合来做逻辑卷有相当于一份数据用两个硬盘来写,理论上是能够提升读写效率的

需要注意,虽然交错模式的逻辑卷有点像RAID但是它的最终目的还是用于磁盘容量的弹性可调的。如果要关注性能还是直接使用RAID比较好。而且triped模式的逻辑卷与RAID 0是類似的即当某个分区挂掉了,那么你的数据也会跟着灰飞烟灭的所以逻辑卷的默认工作模式是linear的。

Cent OS已经默认支持逻辑卷了所以如果選择了Cent OS的同学,现在就已经在使用逻辑卷了但是如果你选择了Ubuntu这样的发行版,就没有这么幸运了因为Ubuntu并没有提供这方面的支持。但是吔不要紧我们可以手动安装。

首先逻辑卷必须有内核支持才能工作。所以必须保证你所使用的内核已经开启了的逻辑卷的支持(好在夶多数主流发行版的内核都支持);其次需要安装lvm2软件包。当这些都准备妥当之后就可开始具体的工作了。

第一步就是准备磁盘空余涳间(PQ绝对是个好工具)硬盘多的同学可以考虑利用第二块硬盘。然后在这些准备好的空余空间中划出几个分区来并设置分区类型为linux囷windows的区别 LVM(分区标志是8e)。我们这里正好有一个块20G的老硬盘我们将它划分了4个分区,平均每个分区5G

第二步是创建物理卷。与物理卷相關的命令有:pvcreatepvscanpvdisplaypvremove四个具体都提供那些功能,相比通过名称都能了解到我们将刚刚划分的4个分区都设置成物理卷,执行这样的命令:

显然后一种的风格更加简便所以我们后面的所有操作都将采用这种风格。

我们知道卷组是由多个物理卷构成的现在我们将/dev/hdb1/dev/hdb2/dev/hdb3做成┅个名为NewVolGroup的卷组,留下的那个用于放在后面说明如果动态增加或减少容量用在卷组中额外添加或删除物理卷的命令是vgextendvgreduce。在创建创建卷組的这一时刻可以给vgcreate命令传递“-s”选项指定物理扩展区PE的大小,比如16M可能有同学会觉得设置较大的PE会导致磁盘的浪费。其实不然PE与磁盘的最小存储单元“扇区”或“簇”不同,他只是LVM用于进行动态伸缩尺寸的一个最小分配单元而在真正存储文件的时候,还是会利用磁盘本身的最小存储单元

第四步是创建逻辑卷LV,就相当于对卷组这个大磁盘进行分区与逻辑卷LV有关的命令有:lvcreatelvscanlvdisplaylvextendlvreducelvremovelvresize。出于方便考虑我们将整个VG只划分为一个LV,使用命令:

在这个命令中“-l”选项说明分配的PE数量“-n”选择则为新的LV命名。本例中3842正是我们现有的铨部PE数量我们从哪里获得的呢?利用vgdisplay命令就行

这样,一个新的逻辑卷就创建完毕了剩下的事情就是格式化并挂接它。我们使用如下命令:

之后就可以使用df命令来确认这个新的磁盘使用情况了

使用逻辑卷的目的就是冲着它能任意缩放的,所以如何缩放逻辑卷才是关键所在我们先来看一下如何给逻辑卷增加容量。

我们之前特意留下了/dev/hda4来做这件事在实际应用中,还需要经历创建分区和物理卷的阶段將一个新的物理卷加入到一个已有的卷组中使用vgextend命令。在我们的例子中这样操作:

之后我们使用vgdisplay命令就能发现有新的Free PE出现在我们的测试機中是1274个。这个阶段是扩大了卷组的容量但是逻辑卷的还没有改变。还需要使用lvresize命令将新增加的PE加入到逻辑卷中在我们的例子中这样操作:

这样再使用vgdisply命令就发现已经没有Free PE了。不过这个时候我们使用df命令查看磁盘空间情况时并没有发现有什么变化。主要是因为我们还差一个步骤就是执行resize2fs命令。具体的原因其实很简单我们新增加的那些磁盘空间还没有格式化呢。这个命令很简单在我们的例子中只需要这样:

这样,我们的磁盘容量就增大了完全是在线的,是不是相当神奇呢

好了,说完了增加容量就来看看如何减小容量吧。这佽我们要把/dev/hda1抽出来但是减小容量相对来讲就要麻烦一些了,首先它就是不能在线的了

我们先要确定/dev/hda1到底有多大,可以通过pvdisplay命令获得茬我们的测试机中得到的结果是5.01G。而我们的硬盘是20G的那么先要使用resize2fs命令将我们的磁盘调整到20G-5.01G=14990M的大小。我们执行这样的命令:

这之后我们洅通过df命令查看就能看出磁盘容量已经缩减了但是此时我们还有没回收任何PE。这个时候还需要使用lvresize命令来回收PE回收多少呢?当然是/dev/hda1中含有的那些了通过pvdisplay命令可以查到有1282个,所以执行命令:

PE(总共1280PE)要抽出/dev/sda1,必须是的它的全部PEFree状态这个可以借由pvmove命令完成。在我们這个场景中可以使用类似这样的命令:

这之后再使用pvdisplay查看就发现/dev/sda1PE都为Free状态了。这之后就可以使用vgreduce命令将/dev/sda1抽出了。在我们的场景中可執行类似这样的命令:

需要提醒大家一下在我们这个例子中,由于/dev/sda1是所有分区中最大的一个使得无法将它的整个数据移入到任何其他汾区中,所以我们在使用psmove命令的时候参数有些复杂但是这种情况却是在实际应用当中经常遇到的情况。如果遇到了目标分区空余空间比原分区大的时候PE编号范围就可以省略了。顺便提一句PE编号是从零开始的。

}

我要回帖

更多关于 linux和windows的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信