![22.04 服务器安装程序在探测块设备时崩溃](https://linux22.com/image/1192485/22.04%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E5%9C%A8%E6%8E%A2%E6%B5%8B%E5%9D%97%E8%AE%BE%E5%A4%87%E6%97%B6%E5%B4%A9%E6%BA%83.png)
问题: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
安装主机上的