如何優(yōu)雅的搞垮服務(wù)器延塑,再優(yōu)雅的救活

故事事故是這樣的

新開(kāi)發(fā)的jar包部署在老服務(wù)器上蠢护,版本是Red Hat Enterprise Linux AS release 4 (Nahant Update 5)堤结,提示需要高版本jdk,高版本jdk提示glibc版本太低得升級(jí)必怜,是的肉拓,就像套娃。
使用編譯源碼的方式將glibc由2.3升級(jí)到2.9梳庆,升級(jí)完ls命令不好使了暖途。 用LD_PRELOAD方法解決了ls命令不好使的問(wèn)題后還挺有成就感的呢!
輕度強(qiáng)迫癥的我當(dāng)然要重啟膏执,然后

#reboot

就沒(méi)有然后了驻售。。
操作系統(tǒng)起不來(lái)了更米。各種嘗試欺栗,最好的結(jié)果是卡死在

Starting cups-config-daemon:
Starting HAL daemon:

再也不往下走了。007的服務(wù)器被996的程序員干進(jìn)了ICU。
看到了吧迟几,搞垮服務(wù)器可以顯得很無(wú)辜消请。刪庫(kù)顯得太刻意了,會(huì)被人指責(zé)性格有問(wèn)題类腮。

搶救思路

像《信條》一樣進(jìn)行一次逆過(guò)程臊泰,把glibc相關(guān)的靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)都用原來(lái)的低版本覆蓋回來(lái)蚜枢。cp覆蓋和安裝rpm覆蓋一起上缸逃。

必要條件

  • 能進(jìn)機(jī)房,直接操作服務(wù)器厂抽,因?yàn)閟sh此時(shí)已經(jīng)連不上了需频。
  • 有相同版本的Linux系統(tǒng)光盤(pán),Linux搶救模式需要光盤(pán)引導(dǎo)筷凤。
  • 有相同版本的Linux系統(tǒng)的iso鏡像文件贺辰,用來(lái)獲取rpm 【或者替代方法】
  • 有相同版本的Linux系統(tǒng)的服務(wù)器或者虛擬機(jī),用來(lái)下載.a文件 【或者替代方法】

準(zhǔn)備工作

rpm安裝包

將iso文件解壓嵌施,在

RHEL4.6-i386-AS-DVD\RedHat\RPMS

目錄下就包括所有需要的rpm包饲化。
需要準(zhǔn)備的安裝包是下面這些:

image

.a靜態(tài)庫(kù)文件

到好用的版本一致的服務(wù)器對(duì)應(yīng)目錄下載下面的庫(kù)文件
目錄/lib

image

目錄/usr/lib
image

將這些安裝包和靜態(tài)庫(kù)放入一個(gè)U盤(pán)中,U盤(pán)插到服務(wù)器上吗伤。

搶救過(guò)程

進(jìn)入光盤(pán)系統(tǒng)

將光盤(pán)放入光驅(qū)吃靠。
開(kāi)機(jī)快速按F2,進(jìn)入

image

通過(guò)+-號(hào)調(diào)整開(kāi)機(jī)啟動(dòng)順序足淆,將CD-ROM調(diào)整到最上面
image

按回車巢块,系統(tǒng)重新啟動(dòng),進(jìn)入光盤(pán)引導(dǎo)界面
image

按F5巧号,進(jìn)入
image

輸入 linux rescue
image

按回車族奢,稍等一會(huì),進(jìn)入
image

按回車丹鸿,進(jìn)入
image

按回車越走,進(jìn)入
image

按回車,進(jìn)入
image

將光標(biāo)移動(dòng)到No靠欢,按回車廊敌,進(jìn)入
image

按回車,進(jìn)入
image

提示原有系統(tǒng)已經(jīng)掛載到/mnt/sysimage门怪,按回車進(jìn)入骡澈,目前所處的就是光盤(pán)搶救模式(rescue mode),環(huán)境是光盤(pán)系統(tǒng)掷空,原系統(tǒng)所有文件都在光盤(pán)系統(tǒng)的子目錄/mnt/sysimage里肋殴。
image

可以看到原有系統(tǒng)的所有目錄結(jié)構(gòu)在/mnt/sysimage下都是可以看見(jiàn)的囤锉。

掛載U盤(pán)

首先將U盤(pán)掛載到光盤(pán)系統(tǒng),

mount -t vfat /dev/sdb1 /mnt/usb/

不同環(huán)境中U盤(pán)的標(biāo)識(shí)符不一定是sdb1护锤,在物理機(jī)上可能是sda1嚼锄, 可以通過(guò)
fdisk –l 命令看各個(gè)目錄容量大小來(lái)判定哪個(gè)是U盤(pán)。

如果掛載U盤(pán)提示格式錯(cuò)誤蔽豺,U盤(pán)可能是fat16格式区丑,執(zhí)行
mount -t msdos /dev/sdb1 /mnt/usb/ 試試

此時(shí),U盤(pán)里的文件都在/mnt/usb/目錄下修陡, 原系統(tǒng)所有文件都在/mnt/sysimage下沧侥。將usb目錄下的文件拷貝到/mnt/sysimage下面你能記住的任意目錄,本文拷貝到/mnt/sysimage/home下魄鸦。

cp /mnt/usb/* /mnt/sysimage/home

切換到原系統(tǒng)

執(zhí)行

#chroot  /mnt/sysimage

這個(gè)指令使你由當(dāng)前光盤(pán)系統(tǒng)切換到原系統(tǒng)(就是我們要搶救的那個(gè)系統(tǒng))宴杀,執(zhí)行pwd和ls可以看到,你所處的目錄就是原系統(tǒng)的根目錄拾因,賬號(hào)是原系統(tǒng)的root賬號(hào)旺罢。

image

一句話,原系統(tǒng)直接進(jìn)進(jìn)不去绢记,但是從光盤(pán)系統(tǒng)跳扁达,是能跳進(jìn)去的。

安裝rpm

進(jìn)入/home蠢熄,

rpm -ivh --force rpm包名

一個(gè)一個(gè)安裝U盤(pán)的rpm包跪解。裝失敗的就等把成功的都裝完了回頭重試,和答卷子題不會(huì)一個(gè)玩法签孔,都是依賴關(guān)系導(dǎo)致失敗的叉讥。

rpm最好自己重新命名,改成簡(jiǎn)短的名字(glibccomm.rpm這種)饥追,一定要去掉“-”图仓。我當(dāng)時(shí)看見(jiàn)顯示器上顯示的名字包括亂碼和問(wèn)號(hào),靠猜來(lái)判斷是哪個(gè)包但绕,后悔之前沒(méi)重命名救崔。

替換靜態(tài)庫(kù)文件

然后手動(dòng)cp指令替換/lib 和 /usr/lib的靜態(tài)庫(kù)(*.a文件)。

cp /home/libpthread.a  /lib
cp /home/*.a  /usr/lib

修改動(dòng)態(tài)庫(kù)軟連接

手動(dòng)修改動(dòng)態(tài)庫(kù)的軟連接

無(wú)論安裝rpm包時(shí)是否自動(dòng)修改過(guò)軟連接壁熄,都最好手動(dòng)修改一遍帚豪。
到/lib目錄里碳竟,先

rm  *2.9*  #刪除高版本的庫(kù)

然后

ln -sf libutil-2.3.4.solibutil.so.1  
ln -sf libresolv-2.3.4.solibresolv.so.2  
ln -sf libnss_nis-2.3.4.solibnss_nis.so.2  
ln -sf libnss_nisplus-2.3.4.solibnss_nisplus.so.2  
ln -sf libnss_hesiod-2.3.4.solibnss_hesiod.so.2  
ln -sf libnss_files-2.3.4.so  libnss_files.so.2  
ln -sf libnss_dns-2.3.4.so  libnss_dns.so.2  
ln -sf libnss_compat-2.3.4.solibnss_compat.so.2  
ln -sf libnsl-2.3.4.solibnsl.so.1  
ln -sf libdl-2.3.4.solibdl.so.2  
ln -sf libcrypt-2.3.4.solibcrypt.so.1  
ln -sf libBrokenLocale-2.3.4.solibBrokenLocale.so.1  
ln -sf libanl-2.3.4.solibanl.so.1  
ln -sf libc-2.3.4.solibc.so.6  
ln -sf librt-2.3.4.solibrt.so.1  
ln -sf libpthread-0.10.so libpthread.so.0  
ln -sf libm-2.3.4.solibm.so.6  

跳回光盤(pán)系統(tǒng)

執(zhí)行exit跳回到光盤(pán)系統(tǒng)草丧,

image

在上圖光標(biāo)處再一次輸入exit,按回車 莹桅,系統(tǒng)會(huì)重新啟動(dòng)昌执。
立刻修改BIOS烛亦,設(shè)置系統(tǒng)從硬盤(pán)啟動(dòng),原系統(tǒng)可以正常啟動(dòng)了懂拾。

完結(jié)撒花

搶救成功還挺有成就感的呢煤禽!其它操作搞垮服務(wù)器,也可以試試岖赋,只要那個(gè)操作能逆向來(lái)一遍檬果,問(wèn)題都不大。
為什么不重裝唐断?上面部署的東西是多年前放的选脊,物是人非,沒(méi)辦法重頭再來(lái)脸甘。
為什么敢升級(jí)恳啥?親眼看見(jiàn)過(guò)別人把RHEL6.6的glibc升級(jí)了沒(méi)出事。真不知道會(huì)出這么嚴(yán)重的問(wèn)題丹诀。
如果沒(méi)有版本一致的光盤(pán)钝的,接近的也可以。我實(shí)際用的光盤(pán)是RHEL4.6铆遭,和原系統(tǒng)差了一個(gè)小號(hào)硝桩。
rpm和.a文件能拿到就行,不用非按本文方法枚荣。
網(wǎng)友提供的替換so的方案不靠譜亿柑,必須rpm安裝。
2.3升級(jí)到2.9不可以棍弄,不代表升級(jí)到2.4也不可以望薄,版本離的近可能成功。
這個(gè)服務(wù)器至今還在跑著呼畸,那些jar包部署到別的服務(wù)器上了痕支。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蛮原,隨后出現(xiàn)的幾起案子卧须,更是在濱河造成了極大的恐慌,老刑警劉巖儒陨,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件花嘶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹦漠,警方通過(guò)查閱死者的電腦和手機(jī)椭员,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)笛园,“玉大人隘击,你說(shuō)我怎么就攤上這事侍芝。” “怎么了埋同?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵州叠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我凶赁,道長(zhǎng)咧栗,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任虱肄,我火速辦了婚禮楼熄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘浩峡。我一直安慰自己可岂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布翰灾。 她就那樣靜靜地躺著缕粹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纸淮。 梳的紋絲不亂的頭發(fā)上平斩,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音咽块,去河邊找鬼绘面。 笑死,一個(gè)胖子當(dāng)著我的面吹牛侈沪,可吹牛的內(nèi)容都是我干的揭璃。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼亭罪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瘦馍!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起应役,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤情组,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后箩祥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體院崇,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年袍祖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了底瓣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盲泛,死狀恐怖濒持,靈堂內(nèi)的尸體忽然破棺而出贰谣,到底是詐尸還是另有隱情队橙,我是刑警寧澤喷屋,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布考余,位于F島的核電站贬芥,受9級(jí)特大地震影響吉挣,放射性物質(zhì)發(fā)生泄漏蜀备。R本人自食惡果不足惜删咱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一蚁孔、第九天 我趴在偏房一處隱蔽的房頂上張望奶赔。 院中可真熱鬧,春花似錦杠氢、人聲如沸站刑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绞旅。三九已至,卻和暖如春温艇,著一層夾襖步出監(jiān)牢的瞬間因悲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工勺爱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晃琳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓琐鲁,卻偏偏與公主長(zhǎng)得像卫旱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子围段,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361