stdout 및 stderr를 리디렉션하면 여전히 stdout으로 인쇄됩니다.

stdout 및 stderr를 리디렉션하면 여전히 stdout으로 인쇄됩니다.

grub용 구성 파일을 생성할 때 VGA 콘솔에서 일종의 오류가 발생합니다(적어도 버그라고 생각합니다).

grub-mkconfig -o /boot/grub/grub.cfg

다음과 같이 stderr 및 stdout을 ~/grub_error라는 파일로 리디렉션하려고 했습니다.

grub-mkconfig -o /boot/grub/grub.cfg 2>&1 ~/grub_error

그러나 제가 생각하기에 오류라고 생각되는 내용은 여전히 ​​화면에 인쇄됩니다(~/grub_error가 표준 출력으로 리디렉션되었으므로 구문 오류가 발생한다고 생각하지 않습니다).

grub-mkconfig또한 X 세션의 터미널에서 실행할 때 VGA 콘솔에 표시된 "오류"가 나타나지 않는 것을 확인했습니다 . 오류가 "...파일 시스템 손상을 일으킬 수 있음"과 같이 매우 심각한 것 같으므로 리디렉션해야 할 다른 항목이 있습니까? GPT가 포함된 BIOS 시스템을 사용하고 있으므로 BIOS_boot 파티션이 있는데 /dev/sda1(내 BIOS_boot 파티션)에 ext4 파일 시스템이 없다는 오류 메시지가 표시됩니다. 그리고해서는 안됩니다).

[ 2709.836576] EXT4-fs (sda1): VFS: Can't find ext4 filesystem
[ 2709.839402] EXT4-fs (sda1): VFS: Can't find ext4 filesystem
[ 2709.841988] EXT4-fs (sda1): VFS: Can't find ext4 filesystem
[ 2709.846191] XFS (sda1): Invalid superblock magic number
[ 2709.850344] FAT-fs (sda1): invalid media value (0xe2)
[ 2709.850806] FAT-fs (sda1): Can't find a valid FAT filesystem
[ 2709.853194] FAT-fs (sda1): invalid media value (0xe2)
[ 2709.853781] FAT-fs (sda1): Can't find a valid FAT filesystem
[ 2709.855905] ntfs: (device sda1): is_boot_sector_ntfs(): Invalid boot sector checksum.
[ 2709.855913] ntfs: (device sda1): read_ntfs_boot_sector(): Primary boot sector is invalid.
[ 2709.856367] ntfs: (device sda1): read_ntfs_boot_sector(): Mount option errors=recover not used. Aborting without trying to recover.
[ 2709.856902] ntfs: (device sda1): ntfs_fill_super(): Not an NTFS volume.
[ 2709.859565] VFS: Can't find a Minix filesystem V1 | V2 | V3 on device sda1.
[ 2709.861950] hfsplus: unable to find HFS+ superblock
[ 2709.863881] ufs: You didn't specify the type of your ufs filesystem

               mount -t ufs -o ufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep ...

               >>>WARNING<<< Wrong ufstype may corrupt your filesystem, default is ufstype=old
[ 2709.867491] ufs: ufs_fill_super(): bad magic number
[ 2709.872393] hfs: can't find a HFS filesystem on dev sda1

답변1

stderr를 stdout으로 리디렉션하지만 stdout 자체도 리디렉션해야 합니다. 당신은 단지 놓치고 있는 것이며 >리디렉션 순서가 매우 중요합니다.

grub-mkconfig -o /boot/grub/grub.cfg >~/grub_error 2>&1

https://www.gnu.org/software/bash/manual/html_node/Redirections.html

콘솔과 터미널 출력의 차이점(및 콘솔에 리디렉션이 없는 것처럼 보이는 경우)은 일반적으로 커널 메시지를 나타냅니다. 다른 터미널을 열고 를 입력하세요 dmesg -w. 그런 다음 프로그램이나 스크립트를 다시 실행하십시오. 콘솔에서 리디렉션되지 않거나 터미널에 존재하지 않는 dmesg 명령에 의해 출력된 메시지가 표시되어야 합니다.

관련 정보