Ubuntu16.04 報錯信息處理

系統版本:Ubuntu 16.04LTS

1.提示系統更新升級,報錯 /boot空間不足

2.根據網絡,爲獲得/boot 空間,選擇刪除多餘的內核文件

2.1 查詢系統當前內核

輸入指令
uname -a
獲得結果
Linux xplanet-Aspire-E1-471G 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
加粗部分爲版本號。

2.2查看系統現有內核文件

輸入指令
dpkg –get-selections |grep linux-image
輸出結果
ii linux-image-4.4.0-31-generic 4.4.0-31.50 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-78-generic 4.4.0-78.99 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-extra-4.4.0-31-generic 4.4.0-31.50 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii linux-image-extra-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

可以看到,除了當前使用的4.4.0.72內核,系統內還有4.4.0.31、4.4.0.78兩個內核。

2.3 清除多餘內核文件

輸入指令
sudo apt-get remove linux-image-4.4.0-31-generic

正常情況下,4.4.0-31-generic會被刪除,但我的程序出現了 報錯

報錯信息
File “/usr/bin/pyclean”, line 63
except (IOError, OSError), e:
^
SyntaxError: invalid syntax
dpkg:警告:子進程 舊的 pre-removal 腳本 返回錯誤狀態 1
dpkg: 現在嘗試使用新軟件包所帶的腳本…
File “/usr/bin/pyclean”, line 63
except (IOError, OSError), e:
^
SyntaxError: invalid syntax
dpkg: 處理歸檔 /var/cache/apt/archives/apport_2.20.1-0ubuntu2.5_all.deb (–unpack)時出錯:
子進程 新的 pre-removal 腳本 返回錯誤狀態 1
Traceback (most recent call last):
File “/usr/bin/pycompile”, line 35, in
from debpython.version import SUPPORTED, debsorted, vrepr, \
File “/usr/share/python/debpython/version.py”, line 24, in
from ConfigParser import SafeConfigParser
ImportError: No module named ‘ConfigParser’
dpkg:清理時出錯:
子進程 已安裝 post-installation 腳本 返回錯誤狀態 1
在處理時有錯誤發生:
/var/cache/apt/archives/apport_2.20.1-0ubuntu2.5_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

共有三個報錯:

  1. 子進程 舊的 pre-removal 腳本 返回錯誤狀態 1
  2. 子進程 新的 pre-removal 腳本 返回錯誤狀態 1
  3. 子進程 已安裝 post-installation 腳本 返回錯誤狀態 1

2.3.1 解決“ pre-removal腳本 返回錯誤狀態1 的報錯”

根據網絡,運行

sudo gedit /var/lib/dpkg/status

“找到Package: ,比如Package: vsftpd
刪除這部分的描述,刪到下個Package: XXX前就好。
存檔後,再進行操作就OK了”

我打開了status文檔,尋找linux 內核對應的package,只找到了一個linux-base的package,刪掉了對應描述,失手沒有備份。

運行以下命令,繼續刪除內核

sudo apt-get autoremove linux-image-4.4.0-31-generic

報錯如下
您可能需要運行“apt-get -f install”來糾正下列錯誤:
下列軟件包有未滿足的依賴關係:
initramfs-tools : 依賴: linux-base 但是它將不會被安裝
linux-image-extra-4.4.0-31-generic : 依賴: linux-image-4.4.0-31-generic 但是它將不會被安裝
E: 有未能滿足的依賴關係。請嘗試不指明軟件包的名字來運行“apt-get -f install”(也可以指定一個解決辦法)。

看來我的package刪錯了。
依據提示,運行

sudo apt-get -f install

再次報錯,這次的錯誤信息有

序號 錯誤
1 子進程 舊的 pre-removal 腳本 返回錯誤狀態 1
2 子進程 新的 pre-removal 腳本 返回錯誤狀態 1
3 ImportError: No module named ‘ConfigParser’
4 子進程 已安裝 post-installation 腳本 返回錯誤狀態 1

發現一個新的 錯誤,No module named ‘ConfigParser’

2.3.2 解決報錯ImportError: No module named ‘ConfigParser’

經查詢,報錯原因是因爲
在Python 3中, ConfigParser 被重命名爲 configparser
而我使用到的package 不支持pyhton3,沒有更新。

之前因爲學習需要,我將系統默認的Python2改爲指向Python3,導致了這一問題。

2.3.3設置Python2與Python3的切換

運行以下指令,設置Python2和Python3作爲alteratives

sudo update-alternatives –install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives –install /usr/bin/python python /usr/bin/python3 150

以後可以隨時使用以下指令來更換Python2和Python3

sudo update-alternatives –config python

得到如下輸出

選擇 路徑 優先級 狀態
————————————————————————
* 0 /usr/bin/python3 150 自動模式
1 /usr/bin/python2 100 手動模式
2 /usr/bin/python3 150 手動模式
要維持當前值[*]請按<回車鍵>,或者鍵入選擇的編號:

輸入對應編號就可以啦。

2.3.4 解決“子進程 已安裝 post-installation 腳本 返回錯誤狀態 1”

更改了默認的Python版本後,
重新運行指令,仍然報錯,但是只剩下
子進程 已安裝 post-installation 腳本 返回錯誤狀態 1
這一類錯誤了。
解決方法
運行如下指令

sudo rm /var/lib/dpkg/info/包的名稱

sudo rm /var/lib/dpkg/info/linux-image-extra-4.4.0-75-generic.*

錯誤解決

2.3.5 繼續清除內核

解決以上報錯後,運行

sudo apt-get -f install

發現沒有報錯了

運行

sudo apt-get remove linux-image-4.4.0-75-generic

順利完成刪除

根據情況,繼續刪除不需要的內核文件,

刪除完成後,查看內核文件

dpkg -l ‘linux-image-*’|grep ‘^ii’

輸出
ii linux-image-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-extra-4.4.0-72-generic 4.4.0-72.93 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

只剩下了一個版本的內核。

/boot 文件夾獲得了新的空間。

3.更新系統

在“關於這臺計算機”中
選擇 檢查更新
進行更新,順利完成。

發佈了30 篇原創文章 · 獲贊 63 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章