作者vu037 (向阳山我来了!)
看板FreeBSD
标题Re: [问题] 系统遗失许多重要档案?
时间Fri Mar 11 20:22:12 2016
※ 引述《HuangTzHuan ()》之铭言:
: ※ 引述《vu037 (向阳山我来了!)》之铭言:
: : 我是从别人那接手的系统
: : 还在用freebsd 5.1
: : 之前好像硬碟排线有问题,偶尔会死当,
: : 後来换新的线以後还是会有很多异常现象
: : 例如无法正常登入,只能用single user mode
: : 正常登入会卡在要读信件的地方,
: : 画面上显示you got new mail
: : 下一行就是/lib/xxxxxx.so not found
: 那个 xxxxxx 很重要啊!要看清楚才知道要补什麽给它
因为缺太多种
不同的指令会缺不同的library档
现在是连ls都不能用
所以我才没有一个一个写出来
是说ls也不能用 我可能也会不知道要把该补的档案补到哪里去 Orz
: : 之後就跳回
: : login:
: : 然後进single user mode要检查哪边出问题也是困难重重
: : mount好像没有问题,但是没办法用df跟ls看硬碟或档案资讯
: : df跟ls一样会跳/lib/xxxxx.so not found
: : 简单说就是部分指令的lib档好像遗失了
: : 此外用fsck检查硬碟 s1b显示档案系统不明,连phase 1都不会进入
: s1b 是 swap,fsck 本来就不认得它,这是正常的
: swap 不必 fsck
原来如此 我本来以为是类似windows独立弄一槽 整个都是swap档
所以说他的swap根本没有建立档案系统是吧!
: : 其他有几个正常,有几个会因为记忆体不足(或swap error?)让fsck自动被kill掉
那这一点呢?
有些槽的fsck会自己被kill掉
这不应该是因为缺档案或硬碟有问题对吧?
: : 这台电脑目前只有一条32MB记忆体
: : 我用win上面的硬碟救援软体看似乎大部分档案是正常的,磁碟分割好像也没问题
: : 但是系统本身以前应该没有备份过
: : 我本来想是不是能直接看缺什麽档案就一个一个copy回去
: : 可手边没有windows以外的其他电脑
: : 目前想不到我还能怎麽处理了 Orz
: : 想问一下这状况比较有可能的问题是啥
: : 有什麽方法可以确认问题点然後解决
: 32MB 的记忆体,这恐怕是 486~pentium 年代的硬体了吧?
: 现在大概也很难有备料可以交插测试是否所有硬体部份都还是好的
其实硬体应该没旧到那个地步
本来是32+256 但是256那条貌似因为太久没开机坏掉了
插着开机都会逼逼叫
所以才只剩32MB,忘记是SDRAM还是DDR1了
: 所以我个人会建议把硬碟里的资料备份出来
: 然後找新的硬体重装吧
这个我也想过要试
但是我尝试用windows靠软体读ufs档案系统
可是似乎只能读不能存?
所以用windows备份的话 就没办法重灌後再传回去了
而且其实好像浏览的时候也怪怪的,也许是软体的问题?
是不是只能先用一台新系统灌好FreeBSD後再把旧硬碟的东西丢进去?
想顺便问一下,是否有可能在维持某几槽的档案不变的情况下重灌呢?
不过这跟下面的建议2好像很类似
: 如果不管硬体好坏一定要嚐试修复的话
: 下面是几个建议:
: - /rescue 下有 static linked 的常用指令,df ls tar 之类的都有
: 先用这边的代替
这段的意思是把这些系统指令改为使用/rescue下的吗?
是需要用挂载的方式还是怎麽做呢?
很复杂的话可以给个术语让我自己查就好 感谢XD
: - 先确定系统的版本,如果是 5.1-release 的话,缺 library 可以从
: FreeBSD 5.1-release 的光碟里找,理论上可以直接把 base 解开来
: 直接盖掉整个系统,不过如果只缺一两个 lib 的话,就把 base 解开
: 放在别的地方,再 copy 过去吧
(思) 光碟应该网路上还载的到 这ok
光碟机理论上应该随便一台插上去就能动(吧?)
解开base这点可以稍微说明一下要怎麽做吗?
是原本系统档案全部都压在同一个gz之类的档案里
然後我直接用安装的方式盖掉旧的系统资料夹这个意思对吧
不好意思我没有自己安装过FreeBSD或软体,
不太知道光碟内的档案结构是怎样
: - 如果缺的 lib 在 FreeBSD 5.1-release 光碟里找不到的话,有可能是
: patch 过的新版,这时就要看你的 gcc 还能不能动了,能动的话可以到
: /usr/src 下把缺的 lib 编出来
我的ls不能用,没法看,
但请问是不是所有lib都一定会在src里面有原始档?
档名会完全一样吗?
所以只要到/usr/src gcc lib档档名就可以编译出来再copy回需要的位置了?
还是说在src下也是一堆子目录结构呢?
: - 如果 gcc 不能动的话,看一下缺的 lib 是否系统里有较旧的版本,有时
: 候把旧的版本 symbolic link 过去是会动的,如果能用这招让 gcc 能动
: 的话就可以到上一步
旧版本通常会放在哪呢?
symbolic link跟copy的差别是?
以win系统来说,symbolic link是不是像是
改登录档或ini档去让软体使用不同位置的系统档?
具体来说需要怎样的步骤勒?
: - 如果还是不行的话,我想不到还有什麽招可以不透过别的电脑来修复了 orz
给这些方向已经很有帮助了!
这些都是我原本想尝试的方法
只是因为不太熟还不知道该怎麽动手做
而且就跟前一位版友说的一样,有些东西真的不太好估狗 Orz
有劳各位先进再帮忙一下了
非常感谢
--
因为现在电脑没有在手边,所以隔很久才回
不好意思XD
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.233.117
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/FreeBSD/M.1457698936.A.833.html