将 SSD 从 PC1 移至 PC2 后,Ubuntu 18.04 服务器无网络

将 SSD 从 PC1 移至 PC2 后,Ubuntu 18.04 服务器无网络

我在 Ubuntu 18.04 桌面上测试过,没问题。但我测试了 Ubuntu 18.04 服务器或 20.04 服务器,我将 SSD 从 PC1 移动到 PC2,然后将 PC2 移动到没有网络的地方,也没有从 Hyper-V 移动到 PC1(通过 dd 和 balena 蚀刻机)我想分发到许多没有显示器的 PC(挖矿),需要 bash 文件中的自动命令来修复此错误。请帮帮我!我没有找到类似的问题。

附言:

命令知识产权结果:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether f0:79:59:6a:6f:88 brd ff:ff:ff:ff:ff:ff

命令知识产权结果:空字符串('')

命令猫/etc/netplan/*.yaml结果:

# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: true
  version: 2

答案1

请注意,相关的以太网接口是 enp3s0;但是,netplan 文件指的是 eth0。请编辑您的 netplan yaml 文件,将 eth0 替换为 enp3s0。然后:

sudo netplan generate
sudo netplan apply

有沒有改善?

答案2

谢谢 chili555。我成功修复了这个错误,下面是文件 bash 自动修复:

#!/usr/bin/env bash

    eth0=`ip a | grep "state DOWN" | cut -d ' ' -f 2 | cut -d ':' -f 1`
    if [[ ! -z "$eth0" ]] ; then
        echo "Internet isn't present"

        filelist=(/etc/netplan/*.yaml)

        for ((i0=0; i0 < ${#filelist[@]}; i0++)); do
            #echo changing file: ${filelist[$i0]}
            eth1=`cat ${filelist[$i0]} | grep '    ' | cut -d ' ' -f 5 | cut -d ':' -f 1`
            #echo eth1 = $eth1, eth0 = $eth0
            sed -i "s/$eth1/$eth0/g" ${filelist[$i0]}
        done
        sudo netplan generate
        sudo netplan apply
    else
        echo "Internet is present"
    fi

相关内容