安装ubuntu-22.后,这是一个默认没有界面的ubuntu系统,配置好静态IP后,安装了新内核。
附安装新内核过程中需要的一些库:
先apt-cache search 5.15.0-76 内核相关的包。
apt-get download libssl1.1
apt-get download crda
apt-get download wireless-crda
apt-get download iw
apt-get download linux-image-5.15.0-76-generic linux-headers-5.15.0-76-generic linux-modules-5.15.0-76-generic linux-modules-extra-5.15.0-76-generic
以上是从另一台ubuntu20上下载的,因为当前这个ubuntu server22.04的source源中搜索不到其他内核包。如果改变source,可能导致开发库所依赖的动态库版本不匹配。
需要ubuntu图形界面安装:apt install ubuntu-desktop
如果要开启root登录:
vim打开以下的/etc//gdm-autologin及gdb-password中分别注释大约第3行,或者使用以下命令进行注释。
sudo sed -i "s/.*root quiet_success$/#&/" /etc//gdm-autologin
sudo sed -i "s/.*root quiet_success$/#&/" /etc//gdm-password
现在重点问题来了,在安装新内核重启后,没有网络,且重启过程中卡在“A start job is running for wait for network to be Configured”很久,登录界面后,右上角以及setting中的network设置中,都看不到网络设置,只有proxy等无关的东西。 ip a命令查询网卡存在,但是ifup ens33尝试启动不了,也没有报错。
解决方法:
先查看系统上有哪些网络服务:
sudo systemctl status systemd-networkd
sudo systemctl status NetworkManager
sudo service networking status
sudo service network-manager status
我的节点内容如下所示:
root@love:~# systemctl status systemd-networkd
● - Network Configuration
Loaded: loaded (/lib/systemd/system/; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-01-08 11:51:18 UTC; 1h 20min ago
TriggeredBy: ●
Docs: man:(8)
Main PID: 6913 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 4516)
Memory: 1.5M
CPU: 174ms
CGroup: //
└─6913 /lib/systemd/systemd-networkd
Jan 08 11:51:18 love systemd[1]: Starting Network Configuration...
Jan 08 11:51:18 love systemd-networkd[6913]: ens33: Link UP
Jan 08 11:51:18 love systemd-networkd[6913]: ens33: Gained carrier
Jan 08 11:51:18 love systemd-networkd[6913]: lo: Link UP
Jan 08 11:51:18 love systemd-networkd[6913]: lo: Gained carrier
Jan 08 11:51:18 love systemd-networkd[6913]: ens33: Gained IPv6LL
Jan 08 11:51:18 love systemd-networkd[6913]: Enumeration completed
Jan 08 11:51:18 love systemd[1]: Started Network Configuration.
root@love:~# systemctl status NetworkManager
● - Network Manager
Loaded: loaded (/lib/systemd/system/; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-01-08 13:07:53 UTC; 4min 13s ago
Docs: man:NetworkManager(8)
Main PID: 59083 (NetworkManager)
Tasks: 3 (limit: 4516)
Memory: 2.8M
CPU: 98ms
CGroup: //
└─59083 /usr/sbin/NetworkManager --no-daemon
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6713] ifupdown: interface-parser: sou>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6714] ifupdown: interfaces file /etc/networ>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6714] ifupdown: interface-parser: fin>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6737] dhcp-init: Using DHCP client 'interna>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6737] device (lo): carrier: link connected
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6762] manager: (lo): new Generic device (/o>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6861] device (ens33): carrier: link connect>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6868] manager: (ens33): new Ethernet device>
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6876] failed to open /run/network/ifstate
Jan 08 13:07:53 love NetworkManager[59083]: <info> [1704719273.6940] manager: startup complete
root@love:~# service networking status
○
Loaded: masked (Reason: Unit is masked.)
Active: inactive (dead)
Jan 08 12:32:41 love systemd[1]: /lib/systemd/system/:12: Unknown key name 'ExecRestart' >
Jan 08 12:32:41 love systemd[1]: /lib/systemd/system/:12: Unknown key name 'ExecRestart' >
root@love:~# service network-manager status
Unit could not be found.
可以看到,systemd-networkd和NetworkManager同时存在,这时候禁用掉systemd-networkd服务即可。
sudo systemctl stop systemd-networkd
sudo systemctl disable systemd-networkd
root@love:~# systemctl stop systemd-networkd
Warning: Stopping , but it can still be activated by:
gpt解释:
这个警告提示 systemd-networkd 服务停止后,仍然可以通过 激活。 是 systemd-networkd 服务的 socket 单元,负责根据需要启动 systemd-networkd 服务。
想着也用不到的,想尝试卸载上面的服务,先看看它属于哪个安装包:
root@love:~# systemctl show -p FragmentPath systemd-networkd
FragmentPath=/lib/systemd/system/
root@love:~# dpkg -S /lib/systemd/system/
systemd: /lib/systemd/system/
可以看到这个服务属于systemd包里的,那就不敢卸载了,留着吧。
做完这些操作,systemctl restart NetworkManager应该可以启动网络,因为我是在重启之前就做了上面这些操作,所以如果不行你就再重启一次。
附命令行配置IP:
先查看接口名称,如我的机器网卡名称为ens38 :
ip a
1. 配置网卡 (10.1.*.*为IP,16为掩码, 10.1.0.1为网关,10.1.0.6为DNS)
nmcli con mod ens38 10.1.*.*/16 10.1.0.1 10.1.0.6 manual
nmcli con up ens38
其他机器如suse15可以执行:
nmtui
会弹出仿真界面进行配置静态IP。
-----------------------------------2024-09-04----------------------------------------------------
--- ubuntu20 网络问题-----
一台ubuntu20重启后,ip a查询,只看得到网卡,没有IP。
日志中提示:failed to open /run/network/ifstate
尝试执行dhclient ens33 结果给配置了一个特别的IP,无法连接外网。
最后解决过程:
发现 /etc/netplan/下配置文件内容没有配置静态IP相关的东西,此文件名称可能为 配置内容应当大致如下所示:
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
addresses:
- 172.0.0.100/20
gateway4: 172.0.0.1
nameservers:
addresses:
- 172.0.0.1
version: 2
配置完后,重启了系统就正常了。