tree
방금 통해 설치했어요
sudo apt-get install tree
내 터미널이 갑자기 업데이트하기로 결정했습니다 grub
. 지난주에 설치했는데 tree
비슷한 일이 일어났습니다. 그러나 그날 밤 늦게 컴퓨터를 다시 시작했을 때 디스플레이 창으로 부팅되었습니다.
Grub _
아무것도 변하지 않았다.
결국 OS를 다시 설치했습니다(저는 WattOS를 사용하고 있으며 지난 화요일에 새 컴퓨터에 설치했기 때문에 세상이 끝난 것은 아니었습니다. 모든 것을 다시 설정하는 데 5시간밖에 걸리지 않았습니다).
Grub을 설치할 때 마지막으로 본 것을 어렴풋이 기억하는 몇 가지 오류가 있었습니다(더 쉽게 읽을 수 있도록 게시물 하단에 포함).
나는 이것을 구글링했다:
- 트리가 Grub을 업데이트해야 하는 이유는 무엇입니까?
- 왜 grub 업그레이드/업데이트를 해야 하나요?
그러나 나는 운이 좋지 않습니다. 내가 뭔가를 놓친 것 같아요.
누구든지 설명할 수 있습니까?
- 왜 이런 일이 발생합니까?
- 이건 뭔가 잘못됐다는 뜻인가요?
- 그것을 고치기 위해 내가 해야 할 일/할 수 있는 일이 있다면.
모든 것을 다시 설치하고 싶지 않습니다(분명한 이유가 있습니다!)
감사해요.
설치 중 오류 발생 tree
:
sudo apt-get install tree
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
gimp-data libamd2 libbabl-0.1-0 libcamd2 libccolamd2 libcholmod3 libgegl-0.4-0 libgegl-common libgexiv2-2 libgimp2.0 libhpmud0 libimagequant0
libmetis5 libqt5designer5 libqt5help5 libqt5sql5 libqt5sql5-sqlite libqt5test5 libsane-hpaio libumfpack5 printer-driver-hpcups
printer-driver-postscript-hp python3-dbus.mainloop.pyqt5 python3-notify2 python3- olefile python3-pexpect python3-pil python3-ptyprocess
python3-pyqt5 python3-pyqt5.sip python3-renderpm python3-reportlab python3-reportlab- accel vlc-plugin-samba xsane xsane-common
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
tree
0 upgraded, 1 newly installed, 0 to remove and 174 not upgraded.
1 not fully installed or removed.
Need to get 49.6 kB of archives.
After this operation, 118 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main amd64 tree amd64 1.8.0-1+b1 [49.6 kB]
Fetched 49.6 kB in 0s (110 kB/s)
Selecting previously unselected package tree.
(Reading database ... 123032 files and directories currently installed.)
Preparing to unpack .../tree_1.8.0-1+b1_amd64.deb ...
Unpacking tree (1.8.0-1+b1) ...
Setting up grub-pc (2.06-3~deb11u6) ...
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
Generating grub configuration file ...
Found background: /usr/share/wattOS/splash.png
Found background image: /usr/share/wattOS/splash.png
Found linux image: /boot/vmlinuz-5.10.0-19-amd64
Found initrd image: /boot/initrd.img-5.10.0-19-amd64
Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Found Debian GNU/Linux 11 (bullseye) on /dev/mmcblk0p2 done Setting up tree (1.8.0-1+b1) ...
Processing triggers for man-db (2.9.4-2) ...
고쳐 쓰다
실수로 다시 시작했는데 컴퓨터가 다시 정지되었습니다. 그런 다음 내 하드 드라이브의 유일한 운영 체제로 WattOS를 다시 설치했는데 모든 것이 잘 작동했습니다. 방금 @eyoung100 님 답변 보고 도망쳤어요
sudo apt upgrade
오류 없이 실행됩니다.
그럼 난 달렸어
sudo apt autoremove
도중에 지난번과 같은 화면을 보았습니다.
The grub-pc package is being upgraded. This menu allows you to select which devices you'd like grub-install to be automatically run for, if any.
Running grub-install automatically is recommended in most situations, to prevent the installed GRUB core image from getting out of sync with
GRUB modules or grub.cfg.
If you're unsure which drive is designated as boot drive by your BIOS, it is often a good idea to install GRUB to all of them.
Note: it is possible to install GRUB to partition boot records as well, and some appropriate partitions are offered here. However, this forces GRUB to use the blocklist mechanism, which makes it less reliable, and therefore is not recommended.
지난번에 오류가 발생했기 때문에 "확인"을 선택하지 않았습니다.
그런 다음 다른 터미널에서 시도하면
sudo apt upgrade
그 반응은
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 39623 (apt)
이것은 놀라운 일이 아닙니다.
ctrl-c와 ctrl-x를 사용하여 셸을 닫으려고 했지만 둘 다 도움이 되지 않았습니다. 창문을 닫아도 되지만 걱정이 됩니다.
추가 정보 요청
- 결과
sudo dmidecode -s bios-version
예
8GET38WW (1.15 )
- 결과
sudo dmidecode -t 0 | grep UEFI
아무것도 아님. (이것은 지원되지 않는다는 것을 의미합니다).
- 결과
cpuid | less
예
bash: cpuid: command not found
제가 말할 수 있는 것은 이것이 레노버 씽크패드 L520, 리퍼브 제품이고 CPU를 교체하지 않았다는 것 뿐입니다. (이전 주인이 어땠는지는 잘 모르겠습니다.)
- 결과
sudo parted --list
예
Model: ATA ADATA SU630 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 231GB 231GB primary ext4 boot
2 231GB 240GB 9449MB primary linux-swap(v1)
fstype
또는 에 대한 정보를 볼 수 없습니다 gpt
.
아까 말했듯이, 지워진 디스크에 설치해 보았습니다.
시간 내 주셔서 감사합니다!
답변1
오류 범위를 좁히세요
걱정하기 전에 알아둬야 할 게 많아 보여grub
- (적어도) 26개의 패키지를 제거해야 합니다.
- 174개의 패키지에 업그레이드가 필요합니다.
- oldfred의 의견에서 알 수 있듯이 Grub에는 몇 가지 조사와 가능한 수정이 필요합니다.
잠재적으로 문제를 두 번 수정할 필요가 없도록 작은 단계(1과 2)를 취소해야 합니다 grub
. 나는 두 가지 이유로 이러한 유형의 답변을 좋아합니다.
- Linux에서의 재부팅은 Windows에서의 재부팅과 매우 다르다는 점을 새로운 Linux 사용자가 이해하도록 도울 수 있습니다.
- 새로운 Linux 사용자로서 제가 여기서 했던 것처럼 OP가 그의 지식을 전달할 수 있기를 바랍니다.
작은 것부터 먼저
출력 스니펫만 보면 패키지 관리자가 APT라는 것을 알 수 있습니다.고급 패키징 도구. 필요하다면 시도해 보십시오 mam apt
.
apt update && apt autoremove
- 위의 26-in-1을 제거해야 합니다.apt upgrade
- 2에서 언급한 174개의 패키지(포함될 수 있음grub
)를 다운로드하여 설치해야 합니다. 인터넷 연결 상태에 따라 다소 시간이 걸릴 수 있습니다.
노트:OP가 질문에 붙여넣은 것과 동일한 오류로 인해 업그레이드가 중단될 수 있습니다. 그랬으면 좋겠지만, 174개 패키지 세트가 최대한 업그레이드 되었으면 좋겠습니다. 업그레이드가 중단된 경우 계속 진행하세요. 코끼리 그런 다음 2단계를 반복하세요.
지금 방 안에 있는 코끼리
나이가 많은 Oldfred의 말이 옳았습니다.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
설치 유형을 확실하게 결정하려면 다음과 grub
같은 몇 가지 조건(특정 순서 없음)을 충족해야 합니다.
- BIOS/UEFI 버전:
sudo dmidecode -s bios-version
- UEFI 활성화/지원 여부:
sudo dmidecode -t 0 | grep UEFI
- 귀하의 CPU:
cpuid | less
- 파티션 목록 및 테이블 유형:
sudo parted --list
작동 하려면 grub-efi-amd64
FAT32의 ESP/EFI 파티션 유형과 64비트 CPU가 있어야 합니다. 글머리 기호 3은 다음과 같이 검색할 수 있습니다. 가족 글머리 기호 4에는 EFI 파티션에 대한 출력 fstype: fat32
및 테이블 유형이 포함되어야 합니다 gpt
. 항목 2에는 "지원"이 포함되어야 합니다.
앞에서 언급한 오류에서 설치 프로그램이 포맷한 루트 파티션에 grub 부팅 코드를 포함하려고 한다고 가정합니다 ext2
. OP가 설치에 전체 디스크를 사용한 경우 grub
전체 디스크를 사용하여 다시 설치해야 합니다. 이 옵션은 EFI 여부에 관계없이 작동합니다. EFI 파티션이 있으면 grub
다시 설치하세요. 질문에 위 4개 항목의 결과를 추가해 주시면 적절한 명령으로 이 답변을 업데이트하겠습니다.
고쳐 쓰다
OP에서 제공한 업데이트를 기반으로 dmidecode
이것이 올바른 grub 아키텍처라고 parted
안전하게 말할 수 있습니다 . grub-pc
OP는 설치만 선택했기 때문에와트 운영 체제머신에서 grub
다음 명령을 사용하여 전체 하드 드라이브의 부트 섹터를 안전하게 포함할 수 있습니다.
sudo grub-install /dev/sda && sudo update-grub
sudo reboot
재부팅 후 계속: 다시 업그레이드해야 apt update && apt-upgrade
한다면 업그레이드할 때마다 위 명령을 실행하면 됩니다. (약 15년간 다양한 Linux 배포판에서 업그레이드한 횟수는 10번 미만인 grub
것 같습니다 . 이는 그리 흔한 업그레이드 패키지는 아닙니다.grub
내 생각에는).
노트: 명령에서 파티션 번호를 생략함으로써 grub-install
grub에 전체 디스크를 내장할 수 있음을 알렸습니다.
실패 시 update-grub
(순서대로 내보냄):
sudo grub-install /dev/sda
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot