Debian

網路第 1 層故障

  • April 4, 2021

我更新了 3 台機器,一台 debian 9 和兩台 ubuntu,都完全失去了網路訪問權限。Debian 升級中途失敗,但 ubuntu 的升級似乎正常。

故障似乎在第 1 層:交換機看到連接(“up”),但無法從機器接收到 mac 地址。機器本身將連結顯示為“無載體”。RJ45 上的燈亮起。機器有2個不同的網卡,結果是一樣的。

我完全不明白為什麼具有 3 個不同網卡和 2 個不同作業系統的 3 個不同系統會在同一天以相同的方式失敗。

lshw 顯示*-network:0 DISABLED全部。dmesg 沒有顯示驅動程序有任何問題(我看到載入了lsmod).

做一個systemctl restart NetworkManager.service讓我進入緊急模式。

我應該檢查一個非常低級別的服務嗎?我迷路了。

我應該補充一點,當使用 LiveCD 啟動時,網路很好。

編輯:為了擴展我的評論,在瀏覽 ubuntu 系統的日誌時,我看到了一條消息"A start job is running for dev-sdb1.device",我注意到這個磁碟沒有被掛載。往裡看/etc/fstab,我看到這個磁碟在升級過程中從另一個名字(比如)移動(為什麼?!?)。所以我更新了 fstab 以使用 UUID 而不是設備名稱。我重新啟動,網路又回來了!lsblk``blkid``/dev/sdc1

如果小型數據磁槃無法安裝,我完全不知道為什麼網路會完全失敗。

編輯:

# ethtool -i eth0
driver: tg3
version: 3.137
firmware-version: FFV20.2.17 bc 5720-v1.39
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-tests: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

2個Ubuntu系統:

為了擴展我的評論,在瀏覽日誌時,我看到了一條消息"A start job is running for dev-sdb1.device",我注意到這個磁碟沒有被掛載。往裡看/etc/fstab,我看到這個磁碟在升級過程中從另一個名字(比如)移動(為什麼?!?)。所以我更新了 fstab 以使用 UUID 而不是設備名稱。我重新啟動,網路又回來了!lsblk``blkid``/dev/sdc1

如果小型數據磁槃無法安裝,我完全不知道為什麼網路會完全失敗。但是問題解決了。

在 Debian 系統上,情況要復雜得多:

我安裝了 Debian 10 DVD。用於apt-cdrom啟用它/etc/apt/sources並註釋掉所有其他(現在無用的網路)源。管理以完成更新系統apt update; apt dist-upgrade。然後我重新安裝了網路驅動程序(tg3 和 bnx2x)dpkg -i...。這樣做時 eth0 和 eth6 實際上交換了位置,所以我不得不更新/etc/network/interfaces. 重啟後網路又恢復了!我只需要恢復/etc/apt/sources並再次更新和升級。

預設情況下,systemdsystemd-fstab-generator會將​​列出的所有本地磁碟/etc/fstab視為必不可少的,如果其中一個無法在啟動時掛載,系統將進入緊急模式。如果您的某些本地磁碟不是必需的,您應該考慮使用nofailmount 選項將它們顯式標記為這樣。

你說“做一個systemctl restart NetworkManager.service讓你進入緊急模式”,但你確定係統在那之前沒有處於緊急模式嗎?有時,控制台上可能會出現其他消息,就像出現緊急模式提示一樣,可能會掩蓋您實際上處於緊急模式的通知。

當一個沒有標記nofail掛載選項的本地文件系統掛載失敗時,這意味著系統將無法到達local-fs.target,這是到達的先決條件sysinit.target。網路的初始化只有在達到之後 才會發生(至少在 Debian/Ubuntu 上) 。sysinit.target請參閱圖表man 7 bootup以了解在基於 - 的引導過程.target中充當固定點的各種 s 。systemd

如果您的網路介面由 管理NetworkManager,則 DebianNetworkManager.service僅在sysinit.target. 如果您使用經典的 Debian/etc/network/interfaces來配置您的網路介面,那麼networking.service將應用這些設置……但即使這樣也After=local-fs.target依賴於它,所以 iflocal-fs.target永遠不會到達(即本地文件系統之一無法安裝並且它沒有標記為非-essential),則不會啟動網路。

因此,看來您的“網路第 1 層故障”可能根本沒有故障:網路適配器驅動程序顯然已載入,但尚未告知它們啟動介面,因為較早的本地文件系統故障阻止了系統從啟動過程中走得那麼遠。

經典/dev/sdX磁碟名稱是在檢測到磁碟設備時分配的,預設情況下,嚴格遵循先到先得的原則。每個儲存控制器驅動程序將自行決定如何在驅動程序啟動時將其管理的設備呈現給核心的其餘部分。SATA 和 SAS 驅動程序可能使用基於硬體的單個 SATA/SAS 連結編號;FibreChannel HBA 驅動程序可能按 WWID 順序或有一些預定義的順序;硬體 RAID 控制器可能會按照定義各種 RAID 集的順序進行。如果您有多個儲存控制器,它們的驅動模組的載入順序也將發揮重要作用。然後有可能磁碟已被熱插拔,並且收到的設備名稱將“無序”;除非採取措施使該名稱持久化,

這是目前推薦的做法是不使用/dev/sdX名稱的原因之一/etc/fstab:您應該使用UUID=orLABEL=語法,或者/dev/disk/by-*/*根據您認為是磁碟或文件系統的主要標識符的各種名稱。

引用自:https://unix.stackexchange.com/questions/643089