저는 Ubuntu Server 16.04.3을 실행하고 있습니다. 보안 업데이트 자동 설치를 활성화했습니다. 오늘 아침에 서버가 종료되었습니다(이유는 모르겠지만 실행 중이어야 합니다). 재부팅 후 apt-get dist-upgrade
. 그것은 나에게 다음과 같은 오류를 제공합니다 :
Fetched 351 kB in 0s (1 760 kB/s)
/bin/sh: 1: /usr/sbin/dpkg-preconfigure: not found
dpkg: warning: files list file for package 'libpam-runtime' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'python3.5' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libpython3-stdlib:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'makedev' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'libnettle6:amd64' missing; assuming package has no files currently installed
dpkg: unrecoverable fatal error, aborting:
unable to open files list file for package 'libicu55:amd64': No such device or address
E: Sub-process /usr/bin/dpkg returned an error code (2)
그런 다음 알 수 없는 이유로 서버가 다운된 동안 무언가가 설치되고 있다고 가정했습니다. 나는 그것을 시도했다 apt-get install -f
. 그것은 나에게 다음을 제공합니다 :
/bin/sh: 1: /usr/sbin/dpkg-preconfigure: not found
Setting up linux-firmware (1.157.16) ...
/usr/sbin/update-initramfs: 233: /usr/sbin/update-initramfs: linux-version: not found
dpkg: error processing package linux-firmware (--configure):
subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
linux-firmware
E: Sub-process /usr/bin/dpkg returned an error code (1)
dpkg-preconfigure가 시스템에 존재합니다.
root@lelouch:~# whereis dpkg-preconfigure
dpkg-preconfigure: /usr/sbin/dpkg-preconfigure /usr/share/man/man8/dpkg-preconfigure.8.gz
linux 버전도 존재하지만 실행할 수 없습니다.
root@lelouch:~# whereis linux-version
linux-version: /usr/bin/linux-version /usr/share/man/man1/linux-version.1.gz
root@lelouch:~# /usr/bin/linux-version
bash: /usr/bin/linux-version: /usr/bin/perl: bad interpreter: No such file or directory
dpkg -C는 다음을 제공합니다
root@lelouch:~# dpkg -C
The following packages are only half configured, probably due to problems
configuring them the first time. The configuration should be retried using
dpkg --configure <package> or the configure menu option in dselect:
linux-firmware Firmware for Linux kernel drivers
The following packages are missing the list control file in the
database, they need to be reinstalled:
libc-bin GNU C Library: Binaries
libdns-export162 Exported DNS Shared Library
libgtk2.0-common common files for the GTK+ graphical user interface librar
libidn11:amd64 GNU Libidn library, implementation of IETF IDN specificat
libisc-export160 Exported ISC Shared Library
libncursesw5:amd64 shared libraries for terminal handling (wide character su
libnettle6:amd64 low level cryptographic library (symmetric and one-way cr
libnewt0.52:amd64 Not Erik's Windowing Toolkit - text mode windowing with s
libnih1:amd64 NIH Utility Library
libp11-kit0:amd64 library for loading and coordinating access to PKCS#11 mo
libpam-modules:amd64 Pluggable Authentication Modules for PAM
libpam-modules-bin Pluggable Authentication Modules for PAM - helper binarie
libpam-runtime Runtime support for the PAM library
libpam0g:amd64 Pluggable Authentication Modules library
libpcre3:amd64 Perl 5 Compatible Regular Expression Library - runtime fi
libpng12-0:amd64 PNG library - runtime
libpopt0:amd64 lib for parsing cmdline parameters
libprocps4:amd64 library for accessing process information from /proc
libpython3-stdlib:amd64 interactive high-level object-oriented language (default
libpython3.5:amd64 Shared Python runtime library (version 3.5)
libreadline6:amd64 GNU readline and history libraries, run-time libraries
libseccomp2:amd64 high level interface to Linux seccomp filter
libselinux1:amd64 SELinux runtime shared libraries
libsemanage-common Common files for SELinux policy management libraries
libsemanage1:amd64 SELinux policy management library
libsepol1:amd64 SELinux library for manipulating binary security policies
libslang2:amd64 S-Lang programming library - runtime version
libsqlite3-0:amd64 SQLite 3 shared library
libssl1.0.0:amd64 Secure Sockets Layer toolkit - shared libraries
libtasn1-6:amd64 Manage ASN.1 structures (runtime)
libtext-charwidth-perl get display widths of characters on the terminal
libustr-1.0-1:amd64 Micro string library: shared library
libuuid1:amd64 Universally Unique ID library
libxtables11:amd64 netfilter xtables library
linux-base Linux image base package
login system login tools
logrotate Log rotation utility
lsb-base Linux Standard Base init script functionality
lsb-release Linux Standard Base version reporting utility
makedev creates device files in /dev
mawk a pattern scanning and text processing language
mime-support MIME files 'mime.types' & 'mailcap', and support programs
mount tools for mounting and manipulating filesystems
ncurses-bin terminal-related programs and man pages
net-tools NET-3 networking toolkit
netbase Basic TCP/IP networking system
netcat-openbsd TCP/IP swiss army knife
python3.5 Interactive high-level object-oriented language (version
systemd system and service manager
udev /dev/ and hotplug management daemon
The following packages are missing the md5sums control file in the
database, they need to be reinstalled:
libncursesw5:amd64 shared libraries for terminal handling (wide character su
libnettle6:amd64 low level cryptographic library (symmetric and one-way cr
libnewt0.52:amd64 Not Erik's Windowing Toolkit - text mode windowing with s
libnih1:amd64 NIH Utility Library
libp11-kit0:amd64 library for loading and coordinating access to PKCS#11 mo
libpam-modules:amd64 Pluggable Authentication Modules for PAM
libpam-modules-bin Pluggable Authentication Modules for PAM - helper binarie
libpam-runtime Runtime support for the PAM library
libpam0g:amd64 Pluggable Authentication Modules library
libpcre3:amd64 Perl 5 Compatible Regular Expression Library - runtime fi
libpng12-0:amd64 PNG library - runtime
libpopt0:amd64 lib for parsing cmdline parameters
libprocps4:amd64 library for accessing process information from /proc
libpython3-stdlib:amd64 interactive high-level object-oriented language (default
libreadline6:amd64 GNU readline and history libraries, run-time libraries
libselinux1:amd64 SELinux runtime shared libraries
libsemanage-common Common files for SELinux policy management libraries
libsemanage1:amd64 SELinux policy management library
libsepol1:amd64 SELinux library for manipulating binary security policies
libslang2:amd64 S-Lang programming library - runtime version
libsmartcols1:amd64 smart column output alignment library
libsqlite3-0:amd64 SQLite 3 shared library
libss2:amd64 command-line interface parsing library
libtext-charwidth-perl get display widths of characters on the terminal
libtxc-dxtn-s2tc0:amd64 Texture compression library for Mesa
libustr-1.0-1:amd64 Micro string library: shared library
libuuid1:amd64 Universally Unique ID library
linux-base Linux image base package
login system login tools
logrotate Log rotation utility
lsb-base Linux Standard Base init script functionality
lsb-release Linux Standard Base version reporting utility
makedev creates device files in /dev
mawk a pattern scanning and text processing language
mime-support MIME files 'mime.types' & 'mailcap', and support programs
mount tools for mounting and manipulating filesystems
ncurses-base basic terminal type definitions
ncurses-bin terminal-related programs and man pages
net-tools NET-3 networking toolkit
netbase Basic TCP/IP networking system
netcat-openbsd TCP/IP swiss army knife
정전으로 인해 모든 것이 엉망이 된 것 같아요. 그것에 대한 몇 가지 배경. 서버는 proxmox가 실행하는 가상 머신에 있습니다. 디스크 이미지(dcow2)가 손상되었습니다. 이 문제를 해결하려면 proxmox 도구를 사용해야 했습니다( qemu-img check -r all /var/lib/vz/images/100/vm-100-disk-1.qcow2
). 그런 다음 손상된 것 같아서 grub을 복원해야 했습니다. 마지막으로 fsck -r
서버가 다음과 같이 불평했기 때문에 하나를 실행해야 했습니다 EXT4-fs error (device sda3): ext4_iget:4245: inode #1835722: comm rs:main Q:Reg: bad_extra_isize (20725 != 256)
. fsck 이후 시스템은 정상적으로 실행되고 시스템에 저장된 파일은 손상되지 않은 것으로 보입니다.
VM 호스트의 어떤 로그도 무슨 일이 일어나고 있는지 알려주지 않습니다. 서버에는 서버 충돌 시점에 대한 시스템 로그가 없습니다. 그러나 unattended-upgrades-dpkg.log에는 다음이 표시되고 그 이후에는 아무것도 표시되지 않으므로 충돌과 관련이 있을 수 있습니다.
Log started: 2018-02-15 06:35:35
(Reading database ... ^M(Reading database ... 5%^M(Reading database ... 10%^M(Reading database ... 15%^M(Reading database ... 20%^M(Reading database ... 25%^M(Reading database ... 30%^M(Reading database \
... 35%^M(Reading database ... 40%^M(Reading database ... 45%^M(Reading database ... 50%^M(Reading database ... 55%^M(Reading database ... 60%^M(Reading database ... 65%^M(Reading database ... 70%^M(Read\
ing database ... 75%^M(Reading database ... 80%^M(Reading database ... 85%^M(Reading database ... 90%^M(Reading database ... 95%^M(Reading database ... 100%^M(Reading database ... 109727 files and direct\
ories currently installed.)^M
Preparing to unpack .../libvorbisenc2_1.3.5-3ubuntu0.1_amd64.deb ...^M
Unpacking libvorbisenc2:amd64 (1.3.5-3ubuntu0.1) over (1.3.5-3) ...^M
Preparing to unpack .../libvorbis0a_1.3.5-3ubuntu0.1_amd64.deb ...^M
Unpacking libvorbis0a:amd64 (1.3.5-3ubuntu0.1) over (1.3.5-3) ...^M
Preparing to unpack .../linux-firmware_1.157.16_all.deb ...^M
Unpacking linux-firmware (1.157.16) over (1.157.14) ...^M
Processing triggers for libc-bin (2.23-0ubuntu10) ...^M
Setting up libvorbis0a:amd64 (1.3.5-3ubuntu0.1) ...^M
Setting up libvorbisenc2:amd64 (1.3.5-3ubuntu0.1) ...^M
Setting up linux-firmware (1.157.16) ...^M
update-initramfs: Generating /boot/initrd.img-4.4.0-112-generic^M
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.^M
Mdadm은 다음과 같습니다.
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
# This file was auto-generated on Sat, 10 Feb 2018 17:09:37 +0100
# by mkconf $Id$
누구든지 문제를 해결하는 방법을 알고 있나요?
답변1
디스크 이미지 손상은 매우 이례적입니다.
다시 설치해야 하는 패키지의 수와 중요한 패키지가 많이 영향을 받는다는 점을 고려하면 이제 필요한 파일을 다른 VM에서 백업하고 처음부터 새 VM을 만들어야 할 때라고 생각합니다. 이는 현재 가상 머신을 복구하는 것보다 훨씬 적은 시간이 소요될 가능성이 높습니다.