我在 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