Linux对EXT3分区大小进行无损更改的步骤.docx

上传人:b****5 文档编号:5608834 上传时间:2022-12-29 格式:DOCX 页数:15 大小:19.69KB
下载 相关 举报
Linux对EXT3分区大小进行无损更改的步骤.docx_第1页
第1页 / 共15页
Linux对EXT3分区大小进行无损更改的步骤.docx_第2页
第2页 / 共15页
Linux对EXT3分区大小进行无损更改的步骤.docx_第3页
第3页 / 共15页
Linux对EXT3分区大小进行无损更改的步骤.docx_第4页
第4页 / 共15页
Linux对EXT3分区大小进行无损更改的步骤.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Linux对EXT3分区大小进行无损更改的步骤.docx

《Linux对EXT3分区大小进行无损更改的步骤.docx》由会员分享,可在线阅读,更多相关《Linux对EXT3分区大小进行无损更改的步骤.docx(15页珍藏版)》请在冰豆网上搜索。

Linux对EXT3分区大小进行无损更改的步骤.docx

Linux对EXT3分区大小进行无损更改的步骤

这篇文章是关于如何对ext3分区的大小进行无损转换的。

文章具体说明了如何增大或缩小一个已有的ext3分区,以及如何合并两个ext3分区。

当你发现你已有的分区方案已经不满足实际需求,而又不想用LVM的时候,这种方式将非常有用。

当然,要达成这个目标,有很多不同的方法,而我是使用的这个方法,因此,我不保证对于所有人都是适用的。

1、基础事项:

首先请注重,下面所有的命令都需要以root身份执行,所以假如你是ubuntu用户的话,使用sudosu命令来切换身份。

所有步骤都是在ubuntuEdgyEft桌面系统中测试的,这个系统的所有文件都位于一个大的分区中(大概10GB,设备名/dev/sda1)。

就像这样:

df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/sda19.5G4.1G4.9G46%/

varrun94M132K94M1%/var/run

varlock94M094M0%/var/lock

udev10M52K10M1%/dev

devshm94M094M0%/dev/shm

lrm94M18M77M19%/lib/modules/2.6.17-10-generic/volatile

需要被更改大小的分区在进行操作之前应该首先被卸载(umount),很显然,假如像本例中这种装有所有重要的系统文件的分区,这样的操作是不可行的。

因此,我们需要一张live-CD,当然是Linux的,一会就可以用它来帮忙启动系统。

假设你的操作对象是无法实际接触到的远程系统,就需要保证在该机器上拥有能够用于启动的,取代live-CD的rescue系统,而且还需要附带以下工具:

fdisk,umount,fsck,tune2fs,e2fsck,resize2fs。

从目前的情况看,绝大多数主机公司都会提供带rescue系统的相应的服务器。

假如你需要重分配大小的分区没有任何系统文件(例如/home分区,用于备份的分区等等),那就不需要knoppixLive-CD或者rescue系统了,下面所有介绍的步骤都能够直接执行。

假如你是想对工作系统的分区进行调配,一定要注重首先备份你的数据,因为一旦新分区的大小计算错误的话,你很有可能失去所有的数据,这种情况在缩小分区大小的情况下相当常见!

关于备份的方法指导,可以参考网络上的文章。

我将在这份教程中对/dev/sda1进行重分区,假如你的分区名字和这个不一样,请用自己的分区名字来替换/dev/sda1(例如/dev/sdb5或者/dev/hda7等等)。

2、缩小一个ext3分区

这个章节介绍如何缩小一个ext3分区。

在这个例子中,我将缩小我的/dev/sda1。

首先让我们来看看目前系统的一些情况:

df

Filesystem1K-blocksUsedAvailableUse%Mountedon

/dev/sda198590364234908512330446%/

varrun95480132953481%/var/run

varlock954800954800%/var/lock

udev1024052101881%/dev

devshm954800954800%/dev/shm

lrm95480175807790019%/lib/modules/2.6.17-10-generic/volatile

df-B4k

Filesystem4K-blocksUsedAvailableUse%Mountedon

/dev/sda124647591058727128082646%/

varrun2387033238371%/var/run

varlock238700238700%/var/lock

udev25601325471%/dev

devshm238700238700%/dev/shm

lrm2387043951947519%/lib/modules/2.6.17-10-generic/volatile

df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/sda19.5G4.1G4.9G46%/

varrun94M132K94M1%/var/run

varlock94M094M0%/var/lock

udev10M52K10M1%/dev

devshm94M094M0%/dev/shm

lrm94M18M77M19%/lib/modules/2.6.17-10-generic/volatile

fdisk-l

Disk/dev/sda:

10.7GB,10737418240bytes

255heads,63sectors/track,1305cylinders

Units=cylindersof16065512=8225280bytes

DeviceBootStartEndBlocksIdSystem

/dev/sda1112471001649683Linux

/dev/sda2124813054658855Extended

/dev/sda512481305465853+82Linuxswap/Solaris

fdisk-s/dev/sda1

10016496

接下来,假如你的分区中没有任何系统文件,则继续下面的步骤,否则,请重新启动系统,并启动到knoppix下或者rescue系统下。

shutdown-rnow

当knoppix启动后,打开终端,切换用户身份:

su

此时,/dev/sda1默认应该是umount的,当面,我们还是手工umount一次:

umount/dev/sda1

接下来运行:

fsck-n/dev/sda1

输出应该是这样的:

fsck1.38

e2fsck1.38

/dev/sda1:

clean,159037/1254176files,1095299/2504124blocks

现在,我们将日志从/dev/sda1中去除,等于将其转成ext2系统:

tune2fs-O^has_journal/dev/sda1

输出是这样的:

tune2fs1.38

接下来运行:

e2fsck-f/dev/sda1

运行结果:

e2fsck1.38

Pass1:

Checkinginodes,blocks,andsizes

Pass2:

Checkingdirectorystructure

Pass3:

Checkingdirectoryconnectivity

Pass4:

Checkingreferencecounts

Pass5:

Checkinggroupsummaryinformation

/dev/sda1:

164178/1254176files,1051617/2504124blocks

现在,我们用resize2fs来改变文件系统的大小。

这个程序只能改变ext2文件系统的大小,这就是为什么刚才我们要先将ext3转换成ex2的原因。

当前/dev/sda1已用4.1GB(刚才的df输出可以看到),因此,将10GB的分区缩小到6GB是比较安全的(不能转换到4.1GB以下,否则会丢失数据)。

我们运行:

resize2fs/dev/sda16000M

输出:

resize2fs1.38

Resizingthefilesystemon/dev/sda1to1536000blocks.

Thefilesystemon/dev/sda1isnow1536000blockslong.

请注重这些:

块的数量(1536000)和大小(4k),一会我们将用到。

接下来,我们将删除/dev/sda1分区,并创建一个新的,更小的分区。

别害怕,不会有数据损失的。

我们在fdisk下进行:

fdisk/dev/sda

注重阿,是sda,不是sda1。

之后会显示:

Thenumberofcylindersforthisdiskissetto1305.

Thereisnothingwrongwiththat,butthisislargerthan1024,

andcouldincertainsetupscauseproblemswith:

1)softwarethatrunsatboottime

2)bootingandpartitioningsoftwarefromotherOSs

按下m键,获得命令列表:

Command:

m

Commandaction

atoggleabootableflag

beditbsddisklabel

ctogglethedoscompatibilityflag

ddeleteapartition

llistknownpartitiontypes

mprintthismenu

naddanewpartition

ocreateanewemptyDOSpartitiontable

pprintthepartitiontable

qquitwithoutsavingchanges

screateanewemptySundisklabel

tchangeapartition‘ssystemid

uchangedisplay/entryunits

vverifythepartitiontable

wwritetabletodiskandexit

xextrafunctionality

现在,我们来删除/dev/sda1:

Command:

d

Partitionnumber:

1

然后创建一个新的/dev/sda1。

由于之前它是一个主分区,所以这里我们选择p,并且是一号分区:

Command:

n

Commandaction

llogical

pprimarypartition

p

Partitionnumber:

1

现在,就到了关键步骤了:

我们被要求输入新分区的大小。

首柱面号不是问题,这可以从文章开始时fdisk-l的输出中获得,但我们还不清楚新分区的末柱面号是多少。

幸运的是,我们能够确定以k位单位的分区大小,然后按照这个公式计算:

15360004k1.03=6328320k

然后,我们在结果前面加上一个+号,并将小写的k换成大写的K,再输入:

Lastcylinderor+sizeor+sizeMor+sizeK:

+6328320K

从fdisk的输出我们可以看出,之前的/dev/sda1带有bootable启动标志,因此,我们必须给新的分区加上这个标志:

Command:

a

Partitionnumber:

1

现在,写入新的分区表并退出:

Command:

w

Thepartitiontablehasbeenaltered!

Callingioctltore-readpartitiontable.

WARNING:

Re-readingthepartitiontablefailedwitherror16:

Deviceorresourcebusy.

Thekernelstillusestheoldtable.

Thenewtablewillbeusedatthenextreboot.

Syncingdisks.

然后重新启动。

注重,这次还是启动到live-CD环境中(或者rescue模式),用su命令再次切换成root用户,然后运行:

fsck-n/dev/sda1

输出应该是这样的:

fsck1.38

e2fsck1.38

/dev/sda1:

clean,159036/765536files,1047239/1536000blocks

接下来,在新的/dev/sda1上创建日志文件,转换回ext3文件系统:

tune2fs-j/dev/sda1

tune2fs1.38

Creatingjournalinode:

done

Thisfilesystemwillbeautomaticallycheckedevery30mountsor

0days,whichevercomesfirst.Usetune2fs-cor-itooverride.

好了,这下完成了。

再次重启,启动到你原来的系统中,看看:

df

Filesystem1K-blocksUsedAvailableUse%Mountedon

/dev/sda160478684224140163940873%/

varrun95480132953481%/var/run

varlock954800954800%/var/lock

udev1024052101881%/dev

devshm954800954800%/dev/shm

lrm95480175807790019%/lib/modules/2.6.17-10-generic/volatile

df-B4k

Filesystem4K-blocksUsedAvailableUse%Mountedon

/dev/sda11511967105603540985273%/

varrun2387033238371%/var/run

varlock238700238700%/var/lock

udev25601325471%/dev

devshm238700238700%/dev/shm

lrm2387043951947519%/lib/modules/2.6.17-10-generic/volatile

df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/sda15.8G4.1G1.6G73%/

varrun94M132K94M1%/var/run

varlock94M094M0%/var/lock

udev10M52K10M1%/dev

devshm94M094M0%/dev/shm

lrm94M18M77M19%/lib/modules/2.6.17-10-generic/volatile

fdisk-l

Disk/dev/sda:

10.7GB,10737418240bytes

255heads,63sectors/track,1305cylinders

Units=cylindersof16065512=8225280bytes

DeviceBootStartEndBlocksIdSystem

/dev/sda11789633761183Linux

/dev/sda2124813054658855Extended

/dev/sda512481305465853+82Linuxswap/Solaris

fdisk-s/dev/sda1

6337611

搞定!

3、扩大一个ext3分区

在这里,我们拥有一个大约是6GB的/dev/sda1分区,在它后面,有一个大约4GB的未用空间(刚刚分出来的,呵呵)。

现在,我们要做的就是把这4GB的空闲空间增加到/dev/sda1分区中。

请注重,假如这4GB的空余空间不在/dev/sda1后面,而是在硬盘的其它地方,就无法实现这个目的!

首先,我们收集一些当前分区的资料。

df

Filesystem1K-blocksUsedAvailableUse%Mountedon

/dev/sda160478684224140163940873%/

varrun95480132953481%/var/run

varlock954800954800%/var/lock

udev1024052101881%/dev

devshm954800954800%/dev/shm

lrm95480175807790019%/lib/modules/2.6.17-10-generic/volatile

df-B4k

Filesystem4K-blocksUsedAvailableUse%Mountedon

/dev/sda11511967105603540985273%/

varrun2387033238371%/var/run

varlock238700238700%/var/lock

udev25601325471%/dev

devshm238700238700%/dev/shm

lrm2387043951947519%/lib/modules/2.6.17-10-generic/volatile

df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/sda15.8G4.1G1.6G73%/

varrun94M132K94M1%/var/run

varlock94M094M0%/var/lock

udev10M52K10M1%/dev

devshm94M094M0%/dev/shm

lrm94M18M77M19%/lib/modules/2.6.17-10-generic/volatile

fdisk-l

Disk/dev/sda:

10.7GB,10737418240bytes

255heads,63sectors/track,1305cylinders

Units=cylindersof16065512=8225280bytes

DeviceBootStartEndBlocksIdSystem

/dev/sda11789633761183Linux

/dev/sda2124813054658855Extended

/dev/sda512481305465853+82Linuxswap/Solaris

fdisk-s/dev/sda1

6337611

然后,我们需要关闭系统,并启动到我们的KnoppixLive-CD(或者rescue系统)中:

shutdown-rnow

之后,切换用户:

su

卸载sda1:

umount/dev/sda1

然后执行:

fsck-n/dev/sda1

输出:

fsck1.38

e2fsck1.38

/dev/sda1:

clean,159036/765536files,1080014/1536000blocks

然后是:

tune2fs-O^has_journal/dev/sda1

输出:

tune2fs1.38

接下来运行:

fdisk/dev/sda

输出:

Thenumberofcylindersforthisdiskissetto1305.

Thereisnothingwrongwiththat,butthisislargerthan1024,

andcouldincertainsetupscauseproblemswith:

1)softwarethatrunsatboottime

2)bootingandpartitioningsoftwarefromotherOSs

Typemtogetalistofallcommands:

Command:

m

Commandaction

atoggleabootableflag

beditbsddisklabel

ctogglethedoscompatibilityflag

ddeleteapartition

llistknownpartitiontypes

mprintthismenu

naddanewpartition

ocreateanewemptyDOSpartitiontable

pprintthepartitiontable

qquitwithoutsavingchanges

screateanewemptySundisklabel

tchangeapartition‘ssystemid

uchangedisplay/entryunits

vverifythepartitiontable

wwritetabletodiskandexit

xextrafunctionality

我们来打印分区表:

Command:

p

Disk/dev/sda:

10.7GB,10737418240bytes

255heads,63sectors/track,1305cylinders

Units=cylindersof16065512=8225280bytes

DeviceBootStartEndBlocksIdSystem

/dev/sda11789633761183Linux

/dev/sda2124813054658855Extended

/dev/sda512481305465853+82Linuxswap/Solaris

现在,删除第一个分区:

Command:

d

Partitionnumber:

1

然后创建一个新的sda1分区,大体事项和缩小分区步骤一样:

Command:

n

Commandaction

llogical

pprimarypartition

p

Partitionnumber:

1

现在就该确定最开始和末尾的柱面号,首先输出起始柱面号:

Firstcylinder:

然后fdisk会告述我们可能的最大柱面号,在这里是1247,然后我们直接输入就行了:

Lastcylinderor+sizeor+sizeMor+sizeK:

1247

然后看一下新

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1