各操作系統典型用戶心態
這裏試圖用一些典型狀況加上簡短的語句來描述心態。
-
Windows用戶:
- 嗯,我需要安一個軟件。怎麼辦呢?上網搜索軟件,滿世界求安裝包。終於找到了,下載,安裝。誒?這是什麼東西?我要的是AAA怎麼變成BBB了!?好吧是點到廣告了……找到真正的了,一路下一步。嗯?桌面上怎麼多了點奇怪的東西?算了不管了……
- 啊,電腦慢了。用XXX優化軟件掃描一下。發現XX項目亟待優化!嗯?有個一鍵優化?點之。嗯?報告優化X項目需要安裝XX軟件。啊,原來安裝XX還有X、X、X等好處,怎麼不早點告訴我?安裝……
- 誒,電腦出問題了。去網上提問好了……“標題:我的電腦有問題了;內容:誰能告訴我是怎麼回事啊!”……
- 聽人說XX軟件不錯。啊?這軟件怎麼還要錢啊?找破解版的去。什麼?破解版的是盜版犯法,那我用綠色免安裝版可以了吧……
- 我把系統/軟件升級了。A功能去哪了?B功能呢?我X!你們這羣人有毛病啊非得要換界面!舊版本的呢,我裝回去……
-
OS X用戶:
- 嗯,我需要裝XX軟件。哦,99元,這麼貴啊。咦?XX和A、B、C軟件搭配一塊買只要125元?雖然A、B、C我現在都用不到,不過還是買了吧,說不定以後用得上呢。
- 嘿,我新買了臺Machintosh。嘿嘿,很多東西都改了,和別人的不一樣了,又有了炫耀的資本了。咦,怎麼沒有XX?嗯,肯定是不需要。
-
GNU/Linux用戶:
- 嗯,我需要XX功能。來條命令搜索一下源裏是不是已有軟件可以完成該功能。嗯?沒有啊,好吧去google一下。咦?真的沒有啊……好吧自己用腳本語言寫一個……
- 啊,更新一下出問題了。嘗試一個個回滾看是誰出了問題。嗯,原來是X的緣故啊。搜索一下看還有沒有其他人和我有一樣的問題。嗯?沒有?好吧我去看看源代碼去。啊,源代碼是A語言的但是我不會,好吧有空的時候去學習一下。(一段時間後)終於解決了,學到好多東西啊,記錄一下吧。(順手跑一下更新)啥?軟件有新版本已經修復這個問題了?……
(註:隨着 windows小白級用戶 的涌入,這裏有向windows狀況發展的趨勢)
p.s. 顯然,不可能所有的用戶都是這樣的,但是個人認爲統計上的置信度至少有90%。
p.p.s. 因爲目前爲止沒有在外國待過,對外國的用戶的瞭解僅限於網絡上,故而可能有失偏頗(尤其是Windows)。但是個人覺得大體上不會差太多,因爲用戶都是人,本身就差不多。
Acer 5745G藍牙
自從用Arch以後,藍牙設備就是一個很令我糾結的東西。之前還有Windows的時候,每當需要用到藍牙,都要去Windows下把開關打開,然後回到Arch下使用。後來硬盤掛了,新買了一個就沒再裝Windows,藍牙也就一直沒有用。
這兩天無聊想買個藍牙耳機,順便想到筆記本的藍牙問題還沒解決,於是決定好好解決一下。
以前用別的發行版(比如U盤上的Kali)的時候,藍牙是默認開啓而且可以使用的;而且Arch上也可以使用。所以先確定問題不在內核或者軟件上。所以問題應該就在電源管理上。
我最初認爲藍牙和無線網卡是在一起的(因爲無線網卡上還有個東西),所以精力集中在尋找是不是哪個內核模塊控制的藍牙電源。
我的無線網卡所用的是ath9k,它的參數中有bt_ant_diversity和btcoex_enable兩個和藍牙有關的項目。嘗試使用modprobe加參載之,用wiki中給的一段bash腳本查看下,發現沒有什麼變化。這條路行不通。
後來偶然在/sys/devices/platform/acer-wmi/
看到一個叫rfkill的目錄,cd進去看到又有兩個目錄。分別cd進去並cat name,發現第一個是無線網卡,第二個居然寫的是藍牙!然後下載rfkill這個包,執行
rfkill list
發現藍牙設備(acer-bluetooth)的序號是2,只是被soft block了。之後執行
rfkill unblock 2
這時候如果有圖形化的藍牙控制前端(比如KDE或者Gnome一般都會帶),就可以看到藍牙設備的出現並正常使用了。
補註:
- 執行lshw看到藍牙設備是在USB控制器下的。在archwiki的bluetooth條目其實有一個關於USB藍牙設備的troubleshooting,上邊寫的和我的問題幾乎一樣。再次證實了仔細看wiki的重要性。
-
如果有人和我的電腦狀況類似,但是按上述執行沒有得到應有的結果,請檢查bluez以及相應的GUI前端是否安裝、bluetooth.service是否開啓。
- 我就忘了啓用bluetooth.service,所以在執行過rfkill unblock 2之後KDE沒有給什麼說法。之後又用hciconfig和hcitool折騰了好久都沒有解決。最後還是偶然想起沒有啓動服務=。=
記日前硬盤故障
先描述一下我的計算機概況:
500G硬盤,前大約100G是OEM的Windows7及其預置恢復分區(sda1-sda3),後邊全給了linux用。除了/boot,文件系統格式全是ext4,/home(sda6)有200G+。
發行版是arch,引導器是grub2。
某日,需要進Windows做點事,於是重啓電腦。到了引導項選擇那裏,由於我設置的是隱藏菜單(默認進arch),故而需要按ESC使菜單顯示出來。然而,我手快了些,在5s的倒計時開始前就按了ESC。然後只見硬盤持續亮着,引導菜單沒有出現。等了一會,實在不耐煩,於是長按電源,再開。這次刻意等到讀秒開始之後再按的ESC,引導項選擇也出現了,選擇Windows,確認。Windows的啓動用了很長時間,輸入密碼之後那個“歡迎”也持續旋轉很久。我以爲是上次安裝了一些更新所致,也沒有在意,之後使用沒什麼奇怪現象。
等到處理完,重啓進Arch時候,看到問題了:一直在報sda6一些塊讀取錯誤。看到這裏,大概判斷是硬盤有了壞塊,於是長按電源鍵,關掉了計算機。再次啓動時候是用U盤引導(上次給人裝Arch時候直接把鏡像dd到U盤),繼續看到sda6某某塊讀取出錯,不過這次倒是進了live系統。
然後用badblocks檢測,發現還真是有,主要分佈在sda6上,sda7也有少量。這下就令人着急了——數據可是無價的。幸好手上有個1T且只裝了一半的移動硬盤,可以將數據轉入。
然而,嘗試只讀掛載sda6的時候,提示superblock讀取失敗,拒絕掛載。上網一查,發現ext4會創建備份的superblock,於是按照網上說的,掛載時加上-o sb=xxx參數指定副superblock的塊號。這裏我man了一下mount,發現這個參數是以1K爲標準的。我創建的文件系統塊大小是4K,所以第32768塊的備份superblock應該用-o sb=131072參數。
這樣,連起來的掛載命令就是
mount -r -o sb=131072 -t ext4 /dev/sda6 /mnt/sda6
滿懷期待得讓命令執行,卻再次得到信息說“掛載失敗,可能是錯誤的文件系統類型”。看到這點時候真的有些慌,因爲我確認它是ext4,而掛載時候卻告訴我失敗,莫非數據真的無法挽救?之後又嘗試用其他的副superblock,結果卻沒有什麼變化。
這時候我抱着試試看的心態敲了一下dmesg,在最下邊看到journal讀取失敗,於是拒絕掛載。心情一下清平了,再掛載時候加上norecovery參數,掛載成功,備份數據。
最終的命令如下:
mount -r -o sb=131072,norecovery -t ext4 /dev/sda6 /mnt/sda6
慘痛的經歷再次說明經常備份數據的重要性。
以及,若有遇到類似情況的,望可告知產生原因是什麼……
(某想不通究竟是因爲斷電導致的還是確實是grub的bug……更不想再試試……)
記近日給某服務器裝系統
學院打算重建學校的OJ,故而不知從哪弄了一臺(也許是新的)服務器。然而其上默認什麼都沒有,自然需要去給它裝一個系統。既然重建OJ的活給了某,那麼裝系統就也是我的事了。某思來想去,決定裝CentOS 6.4上去。
那臺服務器是IBM X3630 M4,其上使用的是C105組建的(僞)RAID。一開始沒有想到它是這個情況,故而直接拿着USB設備就去裝了,結果到了分區那一步發現驅動有問題,直 接crash了。之後以“ibm c105 linux”爲關鍵詞Google了一下,發現了這個博客(這博客時靈時不靈)上提供了解決方案。其上有一個指向ibm某支持頁面的鏈接,在那個頁面 中有用於RHEL6的驅動,同樣也能用於CentOS。
下載過驅動包(zip格式)之後,解壓到一個地方(最好跟安裝程序放一個設備中,比較好找)。之後在引導時加上linux dd參數,以便在安裝前可以手動加載驅動。驅動加載過後,原先識別爲兩塊的硬盤變成了一塊,高級磁盤選項中原先處於硬RAID中的那個設備消失,出現了一 個新的跟控制器中同名的普通設備。之後就是一般的安裝過程,網上教程一搜一大把,這裏就不贅述了。只不過安裝時候出現了一點小插曲:提示沒有ISO 9660設備。這樣就需要把iso文件複製過來。不過U盤格式化成了fat32,無法複製4G以上的文件。後來只好在移動硬盤上劃了一塊分區,將之格式化 成ext2,再寫引導複製文件安裝。
總結一下注意事項,以供後人借鑑:
- RAID有可能需要單獨驅動支持,在安裝之前先查看下說明。
- 製作USB啓動盤需要注意是否需要複製iso文件。
- 文件系統格式儘量使用ext2而不要用fat32。原因?fat32有4G的文件大小限制,ext2沒有。