22.04 服务器安装程序在探测块设备时崩溃

22.04 服务器安装程序在探测块设备时崩溃

问题:Ubuntu 22.04 服务器安装程序在选择磁盘之前不断崩溃。崩溃报告显示 block_probe_fail

背景:我正在尝试在 Dell R710 上安装 ubuntu 22.04 Server。我之前在这台机器上安装了 Debian,但我用刷新到 IT 模式的 Dell PERC H310 替换了默认 RAID 控制器,这样我就可以将磁盘直接传递给操作系统。如果这很重要,我必须使用不同的 PCIe 插槽,因为新的 RAID 控制器不适合旧的 RAID 控制器的位置(而且如果 R710 检测到该插槽中的卡与原来的卡不同,它将无法启动)。但是,BIOS 可以正常看到我连接的每个磁盘。

到目前为止,我尝试在 BIOS 和 UEFI 模式下安装 22.04,结果相同。安装程序始终正确启动并引导我完成选择。我下载最新的安装程序,选择我的键盘布局、代理、镜像等,镜像完成后,安装程序立即崩溃。有时它会完全崩溃,有时它会允许我继续设置我的分区(它确实会显示我的所有磁盘)。但是,如果我继续操作,安装程序就会完全崩溃,我必须重新启动。

我也尝试过拔掉我的以太网连接并禁用我的 NIC 只是为了排除它们,但无济于事。

任何帮助我了解根本问题的帮助都将不胜感激。我有一种感觉,在我刷新 RAID 控制器并将 SAS 地址恢复为原来的状态后,其他一些设置不正确。崩溃报告的相关部分内容如下:

 2023-02-01 06:27:59,304 DEBUG probert.multipath:48 Extracted multipath maps fields: ['ok']
 2023-02-01 06:27:59,304 DEBUG probert.multipath:52 Failed to parse multipath maps entry: ok: __new__() missing 2 required positional arguments: 'sysfs' and 'paths'
 2023-02-01 06:27:59,317 DEBUG probert.multipath:48 Extracted multipath paths fields: ['sda', '6SJ3PJY7', '[orphan]', '[undef]', '0x5000c50043c20035', '[undef]', '[undef]', '0000:00:05.0']
 2023-02-01 06:27:59,317 DEBUG probert.multipath:48 Extracted multipath paths fields: ['sdb', 'WD-CA1D77EK', '[orphan]', '[undef]', '0x4433221100000000', '[undef]', '[undef]', '0000:00:05.0']
 2023-02-01 06:27:59,318 DEBUG probert.multipath:48 Extracted multipath paths fields: ['sdc', '6SJ3MA4M', '[orphan]', '[undef]', '0x5000c50043bdc74d', '[undef]', '[undef]', '0000:00:05.0']
 2023-02-01 06:27:59,318 DEBUG probert.multipath:48 Extracted multipath paths fields: ['sdd', 'WD-CA1D5TNK', '[orphan]', '[undef]', '0x4433221101000000', '[undef]', '[undef]', '0000:00:05.0']
 2023-02-01 06:27:59,318 DEBUG probert.multipath:48 Extracted multipath paths fields: ['sde', 'WD-WX12D412TP77', '[orphan]', '[undef]', '0x4433221106000000', '[undef]', '[undef]', '0000:00:05.0']
 2023-02-01 06:27:59,318 DEBUG probert.multipath:48 Extracted multipath paths fields: ['sdf', 'WD-WX12D412T8YU', '[orphan]', '[undef]', '0x4433221107000000', '[undef]', '[undef]', '0000:00:05.0']
 2023-02-01 06:27:59,417 ERROR root:39 finish: subiquity/Filesystem/_probe/probe_once: FAIL: 'MD_LEVEL'
 2023-02-01 06:27:59,418 ERROR block-discover:442 block probing failed restricted=False
 Traceback (most recent call last):
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/filesystem.py", line 436, in _probe
     await asyncio.wait_for(self._probe_once_task.task, timeout)
   File "/snap/subiquity/3698/usr/lib/python3.8/asyncio/tasks.py", line 494, in wait_for
     return fut.result()
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
     return await meth(self, **kw)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/filesystem.py", line 404, in _probe_once
     storage = await run_in_thread(
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/async_helpers.py", line 46, in run_in_thread
     return await loop.run_in_executor(None, func, *args)
   File "/snap/subiquity/3698/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
     result = self.fn(*self.args, **self.kwargs)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/prober.py", line 59, in get_storage
     return Storage().probe(probe_types=probe_types)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/probert/storage.py", line 186, in probe
     probed_data[ptype] = pfunc(context=self.context)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/probert/raid.py", line 143, in probe
     'raidlevel': device['MD_LEVEL'],
   File "/snap/subiquity/3698/lib/python3.8/site-packages/pyudev/device/_device.py", line 957, in __getitem__
     return self.properties.__getitem__(prop)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/pyudev/device/_device.py", line 1084, in __getitem__
     raise KeyError(prop)
 KeyError: 'MD_LEVEL'
 2023-02-01 06:27:59,428 DEBUG subiquitycore.common.errorreport:384 generating crash report
 2023-02-01 06:27:59,430 INFO subiquitycore.common.errorreport:406 saving crash report 'block probing crashed with KeyError' to /var/crash/1675232879.428982496.block_probe_fail.crash
 2023-02-01 06:27:59,430 INFO root:39 start: subiquity/ErrorReporter/1675232879.428982496.block_probe_fail/add_info: 
 2023-02-01 06:27:59,431 DEBUG root:39 start: subiquity/Filesystem/_probe/probe_once: restricted=True
InstallerServerLogInfo:
 2023-02-01 06:27:27,373 INFO subiquity:112 Starting Subiquity server revision 3698
 2023-02-01 06:27:27,373 INFO subiquity:113 Arguments passed: ['/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/cmd/server.py']
 2023-02-01 06:27:28,216 INFO aiohttp.access:233  [01/Feb/2023:06:27:28 +0000] "GET /meta/status?cur=null HTTP/1.1" 200 419 "-" "Python/3.8 aiohttp/3.6.2"
 2023-02-01 06:27:57,966 INFO root:39 start: subiquity/apply_autoinstall_config: 
 2023-02-01 06:27:57,978 INFO root:39 finish: subiquity/apply_autoinstall_config: SUCCESS: 
 2023-02-01 06:27:57,979 INFO root:39 finish: subiquity/Meta/status_GET: SUCCESS: 200 {"state": "WAITING", "confirming_tty": "", "error": null, "cloud_init_ok": tr...
 2023-02-01 06:27:57,997 INFO aiohttp.access:233  [01/Feb/2023:06:27:28 +0000] "GET /meta/status?cur=%22CLOUD_INIT_WAIT%22 HTTP/1.1" 200 411 "-" "Python/3.8 aiohttp/3.6.2"
 2023-02-01 06:27:58,000 INFO root:39 start: subiquity/Meta/client_variant_GET: 
 2023-02-01 06:27:58,003 INFO root:39 finish: subiquity/Meta/client_variant_GET: SUCCESS: 200 "server"
 2023-02-01 06:27:58,005 INFO aiohttp.access:233  [01/Feb/2023:06:27:57 +0000] "GET /meta/client_variant HTTP/1.1" 200 193 "-" "Python/3.8 aiohttp/3.6.2"
 2023-02-01 06:27:58,017 INFO root:39 start: subiquity/Meta/status_GET: 
 2023-02-01 06:27:58,019 INFO root:39 finish: subiquity/Meta/status_GET: SUCCESS: 200 {"state": "WAITING", "confirming_tty": "", "error": null, "cloud_init_ok": tr...
 2023-02-01 06:27:58,020 INFO aiohttp.access:233  [01/Feb/2023:06:27:58 +0000] "GET /meta/status?cur=null HTTP/1.1" 200 411 "-" "Python/3.8 aiohttp/3.6.2"
 2023-02-01 06:27:58,021 INFO root:39 start: subiquity/Meta/client_variant_POST: 
 2023-02-01 06:27:58,054 INFO root:39 finish: subiquity/Meta/client_variant_POST: SUCCESS: 200 null
 2023-02-01 06:27:58,055 INFO aiohttp.access:233  [01/Feb/2023:06:27:58 +0000] "POST /meta/client_variant?variant=%22server%22 HTTP/1.1" 200 189 "-" "Python/3.8 aiohttp/3.6.2"
 2023-02-01 06:27:58,058 INFO root:39 start: subiquity/Meta/status_GET: 
 2023-02-01 06:27:58,090 INFO aiohttp.access:233  [01/Feb/2023:06:27:58 +0000] "GET /locale HTTP/1.1" 200 194 "-" "Python/3.8 aiohttp/3.6.2"
 2023-02-01 06:27:59,417 ERROR root:39 finish: subiquity/Filesystem/_probe/probe_once: FAIL: 'MD_LEVEL'
 2023-02-01 06:27:59,418 ERROR block-discover:442 block probing failed restricted=False
 Traceback (most recent call last):
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/filesystem.py", line 436, in _probe
     await asyncio.wait_for(self._probe_once_task.task, timeout)
   File "/snap/subiquity/3698/usr/lib/python3.8/asyncio/tasks.py", line 494, in wait_for
     return fut.result()
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/context.py", line 148, in decorated_async
     return await meth(self, **kw)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquity/server/controllers/filesystem.py", line 404, in _probe_once
     storage = await run_in_thread(
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/async_helpers.py", line 46, in run_in_thread
     return await loop.run_in_executor(None, func, *args)
   File "/snap/subiquity/3698/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
     result = self.fn(*self.args, **self.kwargs)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/subiquitycore/prober.py", line 59, in get_storage
     return Storage().probe(probe_types=probe_types)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/probert/storage.py", line 186, in probe
     probed_data[ptype] = pfunc(context=self.context)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/probert/raid.py", line 143, in probe
     'raidlevel': device['MD_LEVEL'],
   File "/snap/subiquity/3698/lib/python3.8/site-packages/pyudev/device/_device.py", line 957, in __getitem__
     return self.properties.__getitem__(prop)
   File "/snap/subiquity/3698/lib/python3.8/site-packages/pyudev/device/_device.py", line 1084, in __getitem__
     raise KeyError(prop)
 KeyError: 'MD_LEVEL'
 2023-02-01 06:27:59,430 INFO subiquitycore.common.errorreport:406 saving crash report 'block probing crashed with KeyError' to /var/crash/1675232879.428982496.block_probe_fail.crash
 2023-02-01 06:27:59,430 INFO root:39 start: subiquity/ErrorReporter/1675232879.428982496.block_probe_fail/add_info:
InterpreterPath: /snap/subiquity/3698/usr/bin/python3.8
Lspci:

等等等等...

答案1

这个错误probert可能是你的问题:如果系统上存在非活动 raid,则探测器会失败(并停止安装)

11 月份提交的补丁可能修复了该错误。希望 22.04.2 发布时会包含该补丁。

或者每日构建似乎包含补丁http://cdimage.ubuntu.com/cdimage/ubuntu-server/jammy/daily-live/pending/

或者您可能只需在安装之前擦除磁盘和旧的 RAID 配置即可。

答案2

截至 2023-12-01,我在 Ubuntu Server 22.4 LTS 上遇到了同样的崩溃。

关于问题的描述...安装程序崩溃时,它不会显示任何有关块设备的信息(它会停留在与读取镜像包相关的页面上)。这一点很重要,因为人们不一定知道正在探测块设备——他们会在屏幕上看到“正在读取包”。

我修复了这个问题(根据 Andrew 的回答),通过完全擦除 Ubuntu 安装目标 SATA 驱动器的内容(在不同的 Linux 机器上使用 gparted)并重新运行安装程序。

答案3

我也遇到了同样的错误,镜像检查后安装程序崩溃。

清洁磁盘后,它可以正常工作。

sgdisk --zap-all  $DISK 
dd if=/dev/zero of=$DISK count=100 bs=1024

笔记:要清理磁盘,您只需切换到不同的 tty,方法是按下ALT+F2安装主机上的

相关内容