Ubuntu 시스템의 /boot 파티션에서 이전 커널 버전을 안전하게 제거하는 방법은 무엇입니까?

Ubuntu 시스템의 /boot 파티션에서 이전 커널 버전을 안전하게 제거하는 방법은 무엇입니까?

나는 그것을 별로 좋아하지 않는다리눅스내 사실과 관련하여 다음과 같은 질문이 있습니다./시작하다파티션이 꽉 차서 프로그램을 설치하려고 할 때 문제를 일으키는 것 같습니다.

나는 사용하고있다우분투 우분투 16.04.1 LTS

나는 시스템 공학에 별로 관심이 없기 때문에(나는 소프트웨어 개발자이다) 나의 의심을 자세히 설명하려고 노력했다.

1) 실행LSBLK명령문은 사용 가능하거나 지정된 모든 블록 장치에 대한 정보를 나열합니다.

경험상 모든 목록이 표시되어야 한다고 생각합니다.디스크 파티션/마운트또는 그런 것. 이 용어는 정확히 무엇을 의미합니까?블록 장치?

그래서 내가 내 안에 있다면우분투내가 얻는 시스템:

root@MyServer-VPS:~# lsblk
NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0              2:0    1    4K  0 disk
sda              8:0    0   20G  0 disk
├─sda1           8:1    0  476M  0 part /boot
├─sda2           8:2    0    1K  0 part
├─sda3           8:3    0   10G  0 part
│ └─vg-lv_root 252:0    0 18.6G  0 lvm  /
└─sda5           8:5    0  9.5G  0 part
  ├─vg-lv_root 252:0    0 18.6G  0 lvm  /
  └─vg-lv_swap 252:1    0  952M  0 lvm  [SWAP]
sr0             11:0    1 1024M  0 rom

그렇다면 차이점은 무엇입니까?디스크,부분(상위 디스크의 파티션이어야 함)좌심실 두께그리고ROM?

구체적인 파티션은시작하다, 이것:

sda1           8:1    0  476M  0 part /boot

이것은sda디스크 파티션.

내가 아는 한 그것은 다음을 포함해야 한다.리눅스 커널 다운로드 버전. 응?

좋습니다. 마운트 지점은 다음과 같습니다./시작하다그래서 내 생각엔/시작하다내 시스템 디렉터리로 이동하면(정말요?) 내용은 다음과 같습니다.

root@MyServer-VPS:/boot# ls
abi-4.4.0-21-generic  config-4.4.0-21-generic  grub                         System.map-4.4.0-21-generic  vmlinuz-4.4.0-21-generic
abi-4.4.0-31-generic  config-4.4.0-31-generic  initrd.img-4.4.0-21-generic  System.map-4.4.0-31-generic  vmlinuz-4.4.0-31-generic
abi-4.4.0-34-generic  config-4.4.0-34-generic  initrd.img-4.4.0-31-generic  System.map-4.4.0-34-generic  vmlinuz-4.4.0-34-generic
abi-4.4.0-38-generic  config-4.4.0-38-generic  initrd.img-4.4.0-34-generic  System.map-4.4.0-38-generic  vmlinuz-4.4.0-38-generic
abi-4.4.0-42-generic  config-4.4.0-42-generic  initrd.img-4.4.0-38-generic  System.map-4.4.0-42-generic  vmlinuz-4.4.0-42-generic
abi-4.4.0-45-generic  config-4.4.0-45-generic  initrd.img-4.4.0-42-generic  System.map-4.4.0-45-generic  vmlinuz-4.4.0-45-generic
abi-4.4.0-47-generic  config-4.4.0-47-generic  initrd.img-4.4.0-45-generic  System.map-4.4.0-47-generic  vmlinuz-4.4.0-47-generic
abi-4.4.0-51-generic  config-4.4.0-51-generic  initrd.img-4.4.0-47-generic  System.map-4.4.0-51-generic  vmlinuz-4.4.0-51-generic
abi-4.4.0-53-generic  config-4.4.0-53-generic  initrd.img-4.4.0-51-generic  System.map-4.4.0-53-generic  vmlinuz-4.4.0-53-generic
abi-4.4.0-57-generic  config-4.4.0-57-generic  initrd.img-4.4.0-53-generic  System.map-4.4.0-57-generic  vmlinuz-4.4.0-57-generic
abi-4.4.0-59-generic  config-4.4.0-59-generic  lost+found                   System.map-4.4.0-59-generic  vmlinuz-4.4.0-59-generic

그렇다면 이 내용은 무엇을 의미하는가? 이 시스템에 다른 Linux 커널 버전이 다운로드되어 있습니까?

둘 사이의 차이점은 무엇입니까아비-,구성-,initrd.img-,system.map-그리고vmlinuz-4문서?

사용된 커널 버전을 어떻게 감지하나요?

2) 실행df-h성명서는 다음과 같은 결과를 얻습니다.

root@MyServer-VPS:~# df -h
Filesystem              Size  Used Avail Use% Mounted on
udev                    477M     0  477M   0% /dev
tmpfs                   100M   16M   84M  16% /run
/dev/mapper/vg-lv_root   19G   12G  6.3G  64% /
tmpfs                   497M     0  497M   0% /dev/shm
tmpfs                   5.0M     0  5.0M   0% /run/lock
tmpfs                   497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               461M  458M     0 100% /boot
tmpfs                   100M     0  100M   0% /run/user/0

특히 나는 다음을 가지고 있습니다:

/dev/sda1               461M  458M     0 100% /boot

그러니까 내 뜻은/시작하다파티션이 완전히 가득 찼습니까?

내 질문은: 공간을 확보하기 위해 이전 커널 버전(사용하지 않은 버전)을 모두 안전하게 제거할 수 있습니까?/시작하다?

어떻게 해야 합니까?

답변1

이러한 질문이 하나로 통합되었습니다.

이 용어는 정확히 무엇을 의미합니까?블록 장치?

블록 장치하드웨어 장치에 대한 버퍼링된 액세스와 운영 체제의 추상화 계층을 제공하는 특수 파일입니다.

그렇다면 차이점은 무엇입니까?디스크,부분(상위 디스크의 파티션이어야 함)좌심실 두께그리고ROM?

디스크그리고부분짐작하셨듯이 이는 실제 디스크 또는 드라이브와 그 안에 있는 파티션입니다. 좌심실 두께은 약어이다논리 볼륨 관리자. 더 나은 디스크 공간 관리를 위해 여러 파티션을 하나의 논리 볼륨으로 그룹화합니다. ROMCD-ROM 또는 DVD-ROM 드라이브 이름이 "sr0"입니까?

사용된 커널 버전을 어떻게 감지하나요?

터미널에 다음 명령을 입력하면 현재 사용 중인 커널을 확인할 수 있습니다.

uname -a

그러면 이것은 내 /boot 파티션이 완전히 가득 찼다는 뜻인가요?

실제로 부팅 파티션이 완전히 가득 차서 Ubuntu가 새 버전의 커널을 설치하지 못하게 됩니다.

내 질문은: 모든 이전 커널 버전(사용하지 않는 버전)을 안전하게 제거하여 /boot의 공간을 확보할 수 있습니까?입니다.

시스템에서 이전 패키지를 제거하면 부팅 파티션에서 이전 커널이 해제됩니다. 터미널에 다음 명령을 입력하고 관리자 비밀번호를 입력한 후 "y"로 대답하여 이전 패키지를 제거합니다.

sudo apt autoremove

그러면 이전 커널 버전이 안전하게 제거되고 부팅 옵션과 initram-fs가 업데이트됩니다.

답변2

적절하게 작동하지 않으면 시도해보십시오.dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo dpkg -P

이렇게 하면 현재 실행 중인 커널 외에 헤더가 있는 모든 커널이 지워집니다. 확실하지 않은 경우 먼저 dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'어떤 패키지가 제거될지 확인할 수 있습니다.

답변3

Ubuntu 방식은 GUI 패키지 관리자를 사용하는 것이라고 확신하지만 방금 명령줄에서 수행했습니다.

먼저, 정확히 어떤 패키지 이름이 설치되어 있는지 알아보세요.

dpkg -l | grep linux-image

어떤 커널이 실제로 실행되고 있는지 알아보세요

uname -a

그런 다음 사용

sudo apt-get autoremove PackageName

여기서 PackageName은 제거하려는 커널 이미지 패키지의 이름입니다. 이는 linux-image-4.4.0-21-generic과 유사할 수 있습니다. 이렇게 하면 커널 이미지(/boot 디렉터리 파일), /lib/modules/kernel_version 디렉터리 구조, 커널 헤더 등이 제거됩니다. 필요에 따라 grub 등을 재구성하십시오.

관련 정보