LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: wcw

[已解决]重新分区并用上LVM2和reiser4

[复制链接]
 楼主| 发表于 2006-12-9 14:14:12 | 显示全部楼层
现在很郁闷的一点是系统备份老是不成功,
tar jcvf ***,就用这条命令,老是搞了一半就出错了,而且是搞了一两个钟才出错,而且好像tar.bz2不支持追加文件,出错了又得重来。
我观察了,其中两次已经压缩出了1.7G的东西(就是已经压缩出来的tar.bz2文件大小),今早一次是553M,是不是tar或bz2文件有什么限制啊?以前没压过这么大的东西还真不知。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-10 14:29:14 | 显示全部楼层
我想把/usr/portage和/var单独放在一个分区,这分区的文件系统是ext3好还是用ReiserFS好?
回复 支持 反对

使用道具 举报

发表于 2006-12-10 16:29:32 | 显示全部楼层
Post by wcw
我想把/usr/portage和/var单独放在一个分区,这分区的文件系统是ext3好还是用ReiserFS好?

reiserfs较好,因为小文件多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-10 21:10:37 | 显示全部楼层
终于搞定了,都是些基本操作,就是要非常小心,不然就可能什么都没了;还有就是一些东西要注意,不然可能恢复系统时要重启好几次。      
第一步:备份系统。/目录下sys和proc不需要备份也不要备份,其它都需要。(/sys、/proc里的文件是系统启动时自动创建,刚开始以为保险点连这两个文件夹都备份,结果tar压缩时总是出错)。压缩前要注意是否要备份/mnt,像我这次备份显然不需要备份我windows分区,所以压缩/目录是不包括mnt(不然挂载的所有分区都会被压缩),然后我另外备份 /mnt/other,里面mount了我的gentoo系统其它部分。如果是压缩成多个文件,那最好记录下每个压缩文件到底包含了哪些目录,以便后面的解压。
可用下面命令:

  1. cd /
  2. tar jcvf /mnt/win_d/gentoo.tar.bz2 bin crystalsvg etc home  lost+found sbin tmp var boot dev lib media opt root usr
复制代码

(好像用--exclude参数就不用写这么多)
注意:把备份文件移动放在不将格式化的分区

  1. cd /mnt/other
  2. tar jcvf /mnt/win_d/gentoo2.tar.bz2  *  (压缩其它部分)
复制代码

    第二步:用liveCD启动。用fdisk删除分区,创建分区并格式化分区,/分区用的是ext3文件系统,默认里mkfs.ext3等格式化工具已经加上了-O dir_index选项,据说该选项“有額外的 hashed b-tree 索引功能,開啟他後幾乎任何情況內都是高效能。”
    再提醒一下,用fdisk要小心再小心!
关于fdisk详见下面链接:
http://www.linuxsir.cn/main/?q=node/81

    第三步:解压备份文件。还是在liveCD里面操作,挂载好分区,再把前面的压缩文件加压到相应的分区里。在我机器上是:

  1. mkdir /mnt/gentoo /mnt/other /mnt/win_d
  2. mount /dev/hda7 /mnt/gentoo
  3. mount /dev/hda9 /mnt/other
  4. mount /dev/hda6 /mnt/win_d
  5. cd /mnt/gentoo
  6. tar jxvf /mnt/win_d/gentoo.tar.bz2
  7. cd /mnt/other
  8. tar jxvf /mnt/win_d/gentoo2.tar.bz2
复制代码

(不放心的话就检查好解压后的文件路径是不是正确的。)
注意:如果因为fdisk时改变了分区表,导致mount点改变了,则要注意在备份系统里的/etc/fstab里改过来。上面因为我只是改变了分区大小,分区号(hda7和hda9)并没变。所以不需改变fstab。   
    然后记得添加上备份系统的/proc,/sys,/mnt和/mnt里面相应的目录,这一步很重要,不然启动会出错(我就是在这个地方忘了,然后启动进入“新系统”时出错,反复重启了几次,甚至还用了livecd,很麻烦的事情!)。

  1. cd /mnt/gentoo
  2. mkdir proc sys mnt
  3. cd /mnt/gentoo/mnt
  4. mkdir *** ***
复制代码

    重启,应该是一切OK!如果有错误,只要有livecd,应该没有什么不能解决的。
    第四步:添加LVM。这一步基本上参照http://bbs.linuxsir.cn/showthrea ... 6%E5%8C%BA+ext3+xt3
还有http://www.chinaunix.net/jh/4/72921.html 也非常值得一看,有助于理解LVM的一些概念。下面摘了其中一些介绍LVM概念的东西,想用LVM的应该先看看:

  1. 3. 基本原理
  2. Ok,不要因为恐惧而停止,但是LVM有许多你要明白的术语,以免你危及你的文件系统。

  3. 我们从下面开始,或多或少。

  4. 物理介质 The physical media
  5. 你应该感受“物理”这个单词有极大的延伸,虽然我们刚开始假设它仅仅是一个硬盘,或者一个分区。例如,/dev/hda,/dev/hda6,/dev/sda。你可以转换一个块设备上任何连续块到一个。。。
  6.  
  7. 物理卷 Physical Volume (PV)
  8. 一个PV只不过是有许多管理数据添加在它里面的物理介质--一旦你添加了它,LVM就认为它是。。。的一个持有者。
  9.  
  10. 物理分区 Physical Extents (PE)
  11. 物理分区真的象一些大的数据块,通常有几MB。PE可以分配给一个。。。
  12.  
  13. 卷组 Volume Group (VG)
  14. 一个VG是由许多物理分区组成的(可能来自多个物理卷或硬盘)。虽然这可能容易让你认为一个VG就是由几个硬盘组成的(例如/dev/hda和/dev/sda),但是更确切的说,它包含由这些硬盘提供的许多PE。
  15.  
  16. >;从这个卷组,PE可以分配给一个。。。
  17.  
  18. 逻辑卷 Logical Volume (LV)
  19. Yes,我们最终到达某处。一个逻辑卷是我们工作的最终结果,这里是我们存储信息的地方。这等同于传统分区的想法。
  20. 象用通常的分区一样,在逻辑卷上你能代表性的创建一个。。。
  21.  
  22. 文件系统 Filesystem
  23. 文件系统是你想它成为的形态:标准的 ext2,ReiserFS,NWFS,XFS,JFX,NTFS,等等。。。对Linux内核来说,在通常的分区和逻辑卷之间没有差别。
  24. 我试着画了一个ASCII图来使这些形象化。

  25. 一个物理卷,包含了许多物理分区:

  26. +-----[ Physical Volume ]------+
  27. | PE | PE | PE | PE | PE | PE |
  28. +------------------------------+

  29. 一个卷组,包含了2个物理卷(PV)有6个物理分区:

  30. +------[ Volume Group ]-----------------+
  31. | +--[PV]--------+ +--[PV]---------+ |
  32. | | PE | PE | PE | | PE | PE | PE | |
  33. | +--------------+ +---------------+ |
  34. +---------------------------------------+

  35. 我们现在做更进一步扩展:

  36. +------[ Volume Group ]-----------------+
  37. | +--[PV]--------+ +--[PV]---------+ |
  38. | | PE | PE | PE | | PE | PE | PE | |
  39. | +--+---+---+---+ +-+----+----+---+ |
  40. | | | | +-----/ | | |
  41. | | | | | | | |
  42. | +-+---+---+-+ +----+----+--+ |
  43. | | Logical | | Logical | |
  44. | | Volume | | Volume | |
  45. | | | | | |
  46. | | /home | | /var | |
  47. | +-----------+ +------------+ |
  48. +---------------------------------------+


  49. 这个向我们展示了两个文件系统,它跨越两个磁盘。/home文件系统包含4个物理分区,/var文件系统包含2个。  
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-10 21:17:31 | 显示全部楼层
Post by torres
reiserfs较好,因为小文件多。

太晚看到你的建议了...
本来也是想用这个的,但是看到用户手册上说“它處理小型檔案(少於4kb)時效能會比 ext2 和 ext3 來的好”,但是/portage和/var下的文件好像都大于4K,所以最后还是用了ext3,也是看到了这样一段”ext3 是個相當不錯並且可靠的檔案系統. 它有額外的 hashed b-tree 索引功能,開啟他後幾乎任何情況內都是高效能“。希望选择是正确的。
回复 支持 反对

使用道具 举报

发表于 2006-12-11 04:56:46 | 显示全部楼层
你似乎以前没怎么做过备份,搞的那么复杂。你可以看看这帖子:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=113082
用exclude显然比将所有备份的目录打出来要好,因为很多人并不清楚那些目录是系统必须的,只有自己建的目录才知道是否是需要的。另外我之前为什么说到处搬目录然后建链接并非最好的管理方法,其中一个原因就是希望备份时清清楚楚,知道那些是要的,那些是可以exclude的。

/usr/portage里多数文件都小于4k,只是那些大东西的ebuild才会大于4k。有关ext3的调配可看看:http://forums.gentoo.org/viewtopic-t-305871-highlight-ext3.html
不够据我个人的经验ext3再怎么调,总还是没reiserfs快(指/usr/portage分区而言,只要需解个snapshot包就知道),当然最快还是reiser4,占的空间也小(可比ext3小数百M之多!)。如果你的/usr/portage是用lvm的,那换个文件系统实在是很容易的事。不瞒你说,我现在很少emerge sync,而是用自己写的一个脚本,大约步骤是先用多线程工具(emerge sync用不了多线程了)下最新的snapshot,然后卸载/usr/portage分区(我把这个设到了/var/portage,distfiles则设到了/var/distfiles),重新格式化(/usr/portage最好别和/ 摆到一个分区,十几万个文件写来写去的很容易引起碎片问题),挂好,把snapshot包解过去。看起来似乎有点复杂,但其实多数时候比emerge sync更快,而且不会遇到sync failure的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-11 16:46:18 | 显示全部楼层
Post by torres
你似乎以前没怎么做过备份,搞的那么复杂。你可以看看这帖子:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=113082
用exclude显然比将所有备份的目录打出来要好,因为很多人并不清楚那些目录是系统必须的,只有自己建的目录才知道是否是需要的。另外我之前为什么说到处搬目录然后建链接并非最好的管理方法,其中一个原因就是希望备份时清清楚楚,知道那些是要的,那些是可以exclude的。

哈哈!我是第一次做备份的。
我看了那个链接,其实我是因为磁盘空间不够,装不下整个系统的备份,所以才分多个目录压缩的,照那个帖子说也是无法解决我的问题的。倒是那个链接里二楼给出的帖子符合我的情况。我用“备份”搜了整个论坛,就没看到那贴,原来那贴的标题是繁体字“備份”。
其实真正用linux也是这学期开始,好多命令都不没用过,像split和dd。这些命令看来还挺有用的。
Post by torres

/usr/portage里多数文件都小于4k,只是那些大东西的ebuild才会大于4k。

刚刚用du -bah看了下,确实大多数<4K,上次用du时用错参数了,没加进-b,结果输出的都>=4k
Post by torres

有关ext3的调配可看看:http://forums.gentoo.org/viewtopic-t-305871-highlight-ext3.html
不够据我个人的经验ext3再怎么调,总还是没reiserfs快(指/usr/portage分区而言,只要需解个snapshot包就知道),当然最快还是reiser4,占的空间也小(可比ext3小数百M之多!)。如果你的/usr/portage是用lvm的,那换个文件系统实在是很容易的事。不瞒你说,我现在很少emerge sync,而是用自己写的一个脚本,大约步骤是先用多线程工具(emerge sync用不了多线程了)下最新的snapshot,然后卸载/usr/portage分区(我把这个设到了/var/portage,distfiles则设到了/var/distfiles),重新格式化(/usr/portage最好别和/ 摆到一个分区,十几万个文件写来写去的很容易引起碎片问题),挂好,把snapshot包解过去。看起来似乎有点复杂,但其实多数时候比emerge sync更快,而且不会遇到sync failure的问题。

reiser我还没用过,该天我也用来试试。你上面这句话什么意思:“然后卸载/usr/portage分区(我把这个设到了/var/portage,distfiles则设到了/var/distfiles)”,你是说你把portage挂载在/var/portage,然后搞个链接?然后经常格式化不伤硬盘吗?
能不能把你这个脚本贴出来呀?我也来试试!
回复 支持 反对

使用道具 举报

发表于 2006-12-11 19:43:08 | 显示全部楼层
Post by wcw
...你上面这句话什么意思:“然后卸载/usr/portage分区(我把这个设到了/var/portage,distfiles则设到了/var/distfiles)”,你是说你把portage挂载在/var/portage,然后搞个链接?然后经常格式化不伤硬盘吗?
能不能把你这个脚本贴出来呀?我也来试试!

不是建链接,是在make.conf里设:
PORTDIR=/var/portage
DISTDIR=/var/distfiles
PKGDIR=/var/packages
格式化并不伤硬盘,不停地往里写才会伤硬盘。
我这个脚本摆在/root:
  1. #!/bin/bash
  2. cd
  3. #axel -n 5 --verbose http://ftp.twaren.net/Linux/Gentoo/snapshots/portage-latest.tar.bz2
  4. axel -n 5 -a http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/snapshots/portage-latest.tar.bz2
  5. umount /dev/lv/portage
  6. lvremove -f /dev/lv/portage
  7. lvcreate -L220M -nportage lv
  8. #mkreiserfs -b 1024 -f /dev/lv/portage
  9. mkfs.reiser4 -y /dev/lv/portage
  10. mount /dev/lv/portage /var/portage
  11. cd /var/portage
  12. tar xjvf /root/portage-latest.tar.bz2
  13. mv portage/* .
  14. rmdir portage
  15. emerge --metadata
  16. update-eix
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-11 20:16:24 | 显示全部楼层
你的portage才需要220M,我刚刚看了下我的,除去distfile也要753M!!!难道是用reiser4省这么多空间?
回复 支持 反对

使用道具 举报

发表于 2006-12-11 20:28:07 | 显示全部楼层
Post by wcw
你的portage才需要220M,我刚刚看了下我的,除去distfile也要753M!!!难道是用reiser4省这么多空间?

...沒錯!實際上只有190M不到。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表