我所做的:将 Ubuntu Server 20.04.6LTS 安装到 SSD(/sda),额外的驱动器 HDD(/sdb)。有一个额外的 HDD(现在称为 /sdc)是 RAID1。
RAID1:我遵循了概述的想法在这里重置 RAID1和在这里更改 RAID1 设备
发生了什么事。我正在使用命令sudo fdisk -l | grep 'Disk /'
列出已连接驱动器的详细信息。只要 /sdc 未连接,一切就会按预期运行。
一旦 /sdc 连接,就会在屏幕报告的中间出现一个从终端窗口滚动出来的错误消息。
我尝试过Shift + PgUp
和Shift + PgDown
。我尝试过Shift + A
然后Esc
并且滚动没有发生。
我已尝试过sudo fdisk -l | grep 'Disk /' >001stdout.txt 2>002stderr.txt
,但错误并未被捕获到文件中。
如果可能的话,我宁愿不使用 Screen 和 tmux。
感谢您的帮助。
答案1
首先确保它确实来自 fdisk。在文本控制台上工作时,你可以核心与程序输出混合的消息 - 它们既不是正在运行的命令的标准输出也不是标准错误输出,而是完全独立的消息源。
[ 12345.678]
任何以样式时间戳开头的控制台消息是一条内核消息。尽管最新消息dmesg
通常也都会捕获到系统日志(日记或系统日志)中,但是您可以使用 查看最新消息。
我已尝试过
sudo fdisk -l | grep 'Disk /' >001stdout.txt 2>002stderr.txt
,但错误并未被捕获到文件中。
这不起作用,因为你没有重定向 fdisk 的 stderr – 你只重定向了 stderr'grep'(无论如何它都不会向 stderr 产生任何内容)。管道|
仅连接 fdisk 的标准输出,但对其 stderr 1不执行任何操作,后者继续直接进入终端。
要捕获 fdisk 的标准错误,请将重定向在它的旁边:
sudo fdisk -l 2>fdisk_stderr.txt | grep 'Disk /'
为了将重定向应用于整个管道,您需要对命令进行分组:
(sudo fdisk -l | grep 'Disk /') >001stdout.txt 2>002stderr.txt
-or-
{ sudo fdisk -l | grep 'Disk /'; } >001stdout.txt 2>002stderr.txt
1在其他情况下,您可以使用以下任一方式将 stdout 和 stderr 一起通过管道传输:
sudo fdisk -l 2>&1 | grep ... >stdout 2>stderr
-or-
sudo fdisk -l |& grep ... >stdout 2>stderr
但这种方法在这里实际上不起作用,因为您grep
会过滤掉错误消息。