Audit Système & Procédure de Restauration¶
État au : 24 Janvier 2026 Objectif : Documenter l'existant avant réinstallation/restauration suite à l'échec des drivers Nvidia sur PVE 9.1.
1. 🔍 Audit du Système Actuel (À faire sur le Host Proxmox)¶
Exécutez ces commandes via le Shell Proxmox (ou SSH) et copiez les résultats ci-dessous.
A. Version et Kernel¶
Résultat :
proxmox-ve: 9.1.0 (running kernel: 6.17.4-2-pve)
pve-manager: 9.1.4 (running version: 9.1.4/5ac30304265fbd8e)
proxmox-kernel-helper: 9.0.4
proxmox-kernel-6.17.4-2-pve-signed: 6.17.4-2
proxmox-kernel-6.17: 6.17.4-2
proxmox-kernel-6.17.2-1-pve-signed: 6.17.2-1
ceph-fuse: 19.2.3-pve2
corosync: 3.1.9-pve2
criu: 4.1.1-1
frr-pythontools: 10.4.1-1+pve1
ifupdown2: 3.3.0-1+pmx11
intel-microcode: 3.20251111.1~deb13u1
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libknet1: not correctly installed
libproxmox-acme-perl: 1.7.0
libproxmox-backup-qemu0: 2.0.1
libproxmox-rs-perl: 0.4.1
libpve-access-control: 9.0.5
libpve-apiclient-perl: 3.4.2
libpve-cluster-api-perl: 9.0.7
libpve-cluster-perl: 9.0.7
libpve-common-perl: 9.1.4
libpve-guest-common-perl: 6.0.2
libpve-http-server-perl: 6.0.5
libpve-network-perl: 1.2.4
libpve-rs-perl: 0.11.4
libpve-storage-perl: 9.1.0
libspice-server1: 0.15.2-1+b1
lvm2: 2.03.31-2+pmx1
lxc-pve: 6.0.5-3
lxcfs: 6.0.4-pve1
novnc-pve: 1.6.0-3
proxmox-backup-client: 4.1.1-1
proxmox-backup-file-restore: 4.1.1-1
proxmox-backup-restore-image: 1.0.0
proxmox-firewall: 1.2.1
proxmox-kernel-helper: 9.0.4
proxmox-mail-forward: 1.0.2
proxmox-mini-journalreader: 1.6
proxmox-offline-mirror-helper: 0.7.3
proxmox-widget-toolkit: 5.1.5
pve-cluster: 9.0.7
pve-container: 6.0.18
pve-docs: 9.1.2
pve-edk2-firmware: 4.2025.05-2
pve-esxi-import-tools: 1.0.1
pve-firewall: 6.0.4
pve-firmware: 3.17-2
pve-ha-manager: 5.1.0
pve-i18n: 3.6.6
pve-qemu-kvm: 10.1.2-5
pve-xtermjs: 5.5.0-3
qemu-server: 9.1.3
smartmontools: 7.4-pve1
spiceterm: 3.4.1
swtpm: 0.8.0+pve3
vncterm: 1.9.1
zfsutils-linux: 2.3.4-pve1
Linux pve 6.17.4-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.17.4-2 (2025-12-19T07:49Z) x86_64 GNU/Linux
B. Configuration Boot (GRUB/Systemd-boot)¶
Pour voir les options kernel custom (iommu, blacklist, etc.)
Résultat :
BOOT_IMAGE=/boot/vmlinuz-6.17.4-2-pve root=/dev/mapper/pve-root ro quiet
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
C. Modules et Blacklist (Nvidia/iGPU)¶
Vérifie ce qui est chargé ou bloqué pour le passthrough.
Résultat :
# /etc/modules is obsolete and has been replaced by /etc/modules-load.d/.
# Please see modules-load.d(5) and modprobe.d(5) for details.
#
# Updating this file still works, but it is undocumented and unsupported.
dkms.conf pve-blacklist.conf
intel-microcode-blacklist.conf zfs.conf
D. Tâches Planifiées (Crons)¶
Souvent oublié : les scripts de backup, updates automatiques, etc.
Résultat :
no crontab for root
total 20
drwxr-xr-x 2 root root 4096 Jan 23 19:52 .
drwxr-xr-x 102 root root 4096 Jan 24 17:29 ..
-rw-r--r-- 1 root root 188 Jul 30 21:39 e2scrub_all
-rw-r--r-- 1 root root 102 Jun 13 2025 .placeholder
lrwxrwxrwx 1 root root 20 Jan 23 18:56 vzdump -> /etc/pve/vzdump.cron
-rw-r--r-- 1 root root 377 Aug 26 16:38 zfsutils-linux
total 28
drwxr-xr-x 2 root root 4096 Jan 23 18:54 .
drwxr-xr-x 102 root root 4096 Jan 24 17:29 ..
-rwxr-xr-x 1 root root 1478 Jun 24 2025 apt-compat
-rwxr-xr-x 1 root root 123 May 27 2025 dpkg
-rwxr-xr-x 1 root root 377 Jul 14 2024 logrotate
-rwxr-xr-x 1 root root 1395 May 2 2025 man-db
-rw-r--r-- 1 root root 102 Jun 13 2025 .placeholder
total 16
drwxr-xr-x 2 root root 4096 Jan 23 18:54 .
drwxr-xr-x 102 root root 4096 Jan 24 17:29 ..
-rwxr-xr-x 1 root root 1055 May 2 2025 man-db
-rw-r--r-- 1 root root 102 Jun 13 2025 .placeholder
E. Configuration Stockage & Montages¶
Identification des UUIDs et points de montage actuels.
Résultat :
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
UUID="ab39004a-8408-4e56-9a4c-68fd7e92f6f9" /mnt/disk1 ext4 defaults,noatime 0 2
UUID="717d2874-de4f-4eb6-84f0-6c849326e790" /mnt/disk2 ext4 defaults,noatime 0 2
UUID="2b18b88e-a498-4429-9a02-f22315d7b1fb" /mnt/lxc-data ext4 defaults,noatime 0 2
UUID="b890bfe8-37be-4696-81a2-13da90d47fc0" /mnt/media-bulk ext4 defaults,noatime 0 2
UUID="28e97a24-582e-4d05-acae-184a631fda2b" /mnt/parity ext4 defaults,noatime 0 2
/mnt/disk* /mnt/storage fuse.mergerfs allow_other,use_ino,cache.files=auto-full,moveonenospc=true,category.create=mfs,dropcacheonclose=true,minfreespace=50G 0 0
NAME FSTYPE UUID MOUNTPOINT SIZE
sda 232.9G
├─sda1 1007K
├─sda2 vfat 5A79-03A1 1G
└─sda3 LVM2_m 5vl7RB-owpL-r7pf-d1NK-kVVA-ywLa-p40uIj 229G
├─pve-swap
│ swap bfd6b014-40b3-4983-bcee-8d32ecd20d44 [SWAP] 8G
├─pve-root
│ ext4 0805b841-97ae-4a00-97c1-fa5f3aa310f6 / 67.2G
├─pve-data_tmeta
│ │ 1.4G
│ └─pve-data-tpool
│ │ 135G
│ ├─pve-data
│ │ 135G
│ ├─pve-vm--102--disk--0
│ │ ext4 4f0ed63b-4a50-45f1-b552-c1ed0535fd8c 100G
│ ├─pve-vm--101--disk--0
│ │ ext4 4f1f76cf-646e-41e2-9871-ba65eb11bacb 16G
│ ├─pve-vm--100--disk--0
│ │ ext4 b7f6bda9-a331-492b-87a1-82ca42cb23be 32G
│ └─pve-snap_vm--101--disk--0_vzdump
│ ext4 4f1f76cf-646e-41e2-9871-ba65eb11bacb 16G
└─pve-data_tdata
│ 135G
└─pve-data-tpool
│ 135G
├─pve-data
│ 135G
├─pve-vm--102--disk--0
│ ext4 4f0ed63b-4a50-45f1-b552-c1ed0535fd8c 100G
├─pve-vm--101--disk--0
│ ext4 4f1f76cf-646e-41e2-9871-ba65eb11bacb 16G
├─pve-vm--100--disk--0
│ ext4 b7f6bda9-a331-492b-87a1-82ca42cb23be 32G
└─pve-snap_vm--101--disk--0_vzdump
ext4 4f1f76cf-646e-41e2-9871-ba65eb11bacb 16G
sdb 232.9G
├─sdb1 ext4 2b18b88e-a498-4429-9a02-f22315d7b1fb /mnt/lxc-d 232.4G
└─sdb2 ntfs 62B4A9E7B4A9BE43 531M
sdc 3.6T
├─sdc1 ext4 ab39004a-8408-4e56-9a4c-68fd7e92f6f9 /mnt/disk1 931.3G
└─sdc2 ext4 b890bfe8-37be-4696-81a2-13da90d47fc0 /mnt/media 2.7T
sdd 931.5G
└─sdd1 ext4 717d2874-de4f-4eb6-84f0-6c849326e790 /mnt/disk2 931.5G
sde 931.5G
├─sde1 ext4 28e97a24-582e-4d05-acae-184a631fda2b /mnt/parit 286K
├─sde2 vfat 3A3D-7AEC 8M
├─sde3 hfsplu 1.7G
└─sde4 300K
dir: local
path /var/lib/vz
content backup,vztmpl,iso,import
lvmthin: local-lvm
thinpool data
vgname pve
content images,rootdir
pbs: pbs-backups
datastore backup
server 192.168.1.102
content backup
fingerprint 36:97:a9:56:f1:ab:2b:aa:a6:11:cd:e4:d7:de:66:07:d1:44:88:9f:7a:27:99:08:8f:a3:4d:8a:cb:56:94:a4
prune-backups keep-all=1
username root@pam
F. Paquets "Exotiques" installés manuellement¶
Liste les paquets qui ne viennent pas de l'installation de base (ex: headers, drivers, outils).
# Liste les paquets installés par l'utilisateur (approximatif mais utile)
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
Résultat :
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@pve:~# comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
gzip: /var/log/installer/initial-status.gz: No such file or directory
adduser apparmor apt apt-listchanges apt-utils base-files base-passwd bash bash-completion bc bind9-dnsutils bind9-host bind9-libs binutils binutils-common binutils-x86-64-linux-gnu bison bridge-utils bsdextrautils bsd-mailx bsdutils btrfs-progs build-essential busybox bzip2 ca-certificates ceph-common ceph-fuse chrony cifs-utils conntrack console-setup console-setup-linux coreutils corosync cpio criu cron cron-daemon-common cstream curl dash dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common debconf debconf-i18n debian-archive-keyring debian-faq debianutils dhcpcd-base diffutils dirmngr distro-info-data dkms dmeventd dmidecode dmsetup doc-debian dosfstools dpkg dracut-install dtach e2fsprogs ebtables efibootmgr eject ethtool fail2ban faketime fdisk fdutils file findutils flex fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono fonts-font-awesome fonts-font-logos frr frr-pythontools fuse fuse3 gcc-14-base gdisk genisoimage gettext-base git gnupg gnupg-l10n gnutls-bin golang-github-containers-common golang-github-containers-image gpg gpg-agent gpgconf gpgsm grep groff-base grub2-common grub-common grub-efi-amd64-bin grub-efi-amd64-signed grub-efi-amd64-unsigned grub-pc grub-pc-bin gzip hdparm hostname htop ifupdown2 inetutils-telnet init initramfs-tools initramfs-tools-bin initramfs-tools-core init-system-helpers intel-microcode iotop iproute2 ipset iptables iputils-ping isc-dhcp-client iso-codes iucode-tool kbd keyboard-configuration keyutils klibc-utils kmod krb5-locales ksm-control-daemon less libacl1 libaio1t64 libanyevent-http-perl libanyevent-perl libapparmor1 libappconfig-perl libapt-pkg7.0 libapt-pkg-perl libarchive13t64 libasound2-data libasound2t64 libassuan9 libasyncns0 libatomic1 libattr1 libaudit1 libaudit-common libauthen-pam-perl libavahi-client3 libavahi-common3 libavahi-common-data libbabeltrace1 libbinutils libblas3 libblkid1 libbpf1 libbrotli1 libbsd0 libbytes-random-secure-perl libbz2-1.0 libc6 libcairo2 libcap2 libcap2-bin libcap-ng0 libcares2 libc-bin libcbor0.10 libcephfs2 libcfg7 libc-l10n libclass-methodmaker-perl libclone-perl libcmap4 libcom-err2 libcommon-sense-perl libcompel1 libconvert-asn1-perl libcorosync-common4 libcpg4 libcrypt1 libcrypt-openssl-bignum-perl libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl libcrypt-random-seed-perl libcryptsetup12 libcrypt-ssleay-perl libctf0 libctf-nobfd0 libcurl3t64-gnutls libcurl4t64 libdatrie1 libdb5.3t64 libdbi1t64 libdbus-1-3 libdebconfclient0 libdevel-cycle-perl libdevmapper1.02.1 libdevmapper-event1.02.1 libdigest-hmac-perl libdouble-conversion3 libdpkg-perl libdrm2 libdrm-amdgpu1 libdrm-common libdrm-intel1 libdw1t64 libedit2 libefiboot1t64 libefivar1t64 libelf1t64 libencode-locale-perl libepoxy0 libevent-2.1-7t64 libevent-core-2.1-7t64 libexpat1 libext2fs2t64 libfaketime libfdisk1 libfdt1 libffi8 libfido2-1 libfile-chdir-perl libfile-listing-perl libfile-readbackwards-perl libfilesys-df-perl libflac14 libfontconfig1 libfreetype6 libfribidi0 libfstrm0 libfuse2t64 libfuse3-4 libgbm1 libgcc-s1 libgcrypt20 libgdbm6t64 libgdbm-compat4t64 libglib2.0-0t64 libglvnd-dev libgmp10 libgnutls30t64 libgnutls-dane0t64 libgoogle-perftools4t64 libgpg-error0 libgpgme11t64 libgprofng0 libgraphite2-3 libgssapi-krb5-2 libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 libharfbuzz0b libhogweed6t64 libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libibverbs1 libicu76 libidn2-0 libinih1 libio-html-perl libio-multiplex-perl libio-socket-ssl-perl libio-stringy-perl libip4tc2 libip6tc2 libipset13t64 libiscsi7 libisns0t64 libjansson4 libjemalloc2 libjpeg62-turbo libjs-bootstrap5 libjs-extjs libjson-c5 libjson-glib-1.0-0 libjson-glib-1.0-common libjson-perl libjson-xs-perl libjs-qrcodejs libk5crypto3 libkeyutils1 libklibc libkmod2 libknet1t64 libkrb5-3 libkrb5support0 libksba8 liblastlog2-2 libldap2 libldb2 liblinear4 liblinux-inotify2-perl libllvm19 liblmdb0 liblocale-gettext-perl liblockfile1 liblockfile-bin liblsof0 liblttng-ust1t64 liblttng-ust-common1t64 liblttng-ust-ctl5t64 liblua5.3-0 liblua5.4-0 liblvm2cmd2.03 liblwp-mediatypes-perl liblwp-protocol-https-perl liblz4-1 liblzma5 liblzo2-2 libmagic1t64 libmagic-mgc libmath-random-isaac-perl libmaxminddb0 libmd0 libmime-base32-perl libmnl0 libmount1 libmp3lame0 libmpg123-0t64 libnbd0 libncurses6 libncursesw6 libnet1 libnetaddr-ip-perl libnet-dbus-perl libnet-dns-perl libnetfilter-conntrack3 libnetfilter-log1 libnet-http-perl libnet-ip-perl libnet-ldap-perl libnet-ssleay-perl libnet-subnet-perl libnettle8t64 libnewt0.52 libnfnetlink0 libnfsidmap1 libnftables1 libnftnl11 libnghttp2-14 libnghttp3-9 libngtcp2-16 libngtcp2-crypto-gnutls8 libnl-3-200 libnl-route-3-200 libnozzle1t64 libnpth0t64 libnsl2 libnspr4 libnss3 libnss-systemd libnuma1 libnvpair3linux liboath0t64 libogg0 libopeniscsiusr libopus0 liborc-0.4-0t64 libp11-kit0 libpam0g libpam-modules libpam-modules-bin libpam-runtime libpam-systemd libpam-wtmpdb libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpcap0.8t64 libpci3 libpciaccess0 libpcre2-16-0 libpcre2-8-0 libpcre2-posix3 libperl5.40 libpipeline1 libpixman-1-0 libpng16-16t64 libpopt0 libposix-strptime-perl libproc2-0 libprotobuf-c1 libproxmox-acme-perl libproxmox-acme-plugins libproxmox-backup-qemu0 libproxmox-rs-perl libpsl5t64 libpulse0 libpve-access-control libpve-apiclient-perl libpve-cluster-api-perl libpve-cluster-perl libpve-common-perl libpve-guest-common-perl libpve-http-server-perl libpve-network-api-perl libpve-network-perl libpve-notify-perl libpve-rs-perl libpve-storage-perl libpython3.13-minimal libpython3.13-stdlib libpython3-stdlib libqb100 libqb-tools libqrencode4 libqt5core5t64 libqt5dbus5t64 libqt5network5t64 libquorum5 librabbitmq4 librados2 librados2-perl libradosstriper1 librbd1 librdkafka1 librdmacm1t64 libreadline8t64 libreiserfscore0t64 librgw2 librrd8t64 librrds-perl librtmp1 libsasl2-2 libsasl2-modules-db libseccomp2 libselinux1 libsemanage2 libsemanage-common libsensors5 libsensors-config libsepol2 libsframe1 libslang2 libslirp0 libsmartcols1 libsmbclient0 libsnappy1v5 libsndfile1 libsndio7.0 libsocket6-perl libspice-server1 libsqlite3-0 libss2 libssh2-1t64 libssl3t64 libstatgrab10t64 libstdc++6 libstring-shellquote-perl libsubid5 libsystemd0 libsystemd-shared libtalloc2 libtasn1-6 libtcmalloc-minimal4t64 libtdb1 libtemplate-perl libterm-readline-gnu-perl libtevent0t64 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libthai0 libthai-data libthrift-0.19.0t64 libtimedate-perl libtinfo6 libtirpc3t64 libtirpc-common libtlsrpt0 libtpms0 libtry-tiny-perl libtypes-serialiser-perl libuchardet0 libudev1 libunbound8 libunistring5 libunwind8 liburcu8t64 liburing2 liburi-perl libusb-1.0-0 libusbredirparser1t64 libuuid1 libuuid-perl libuutil3linux libuv1t64 libva2 libva-drm2 libvirglrenderer1 libvorbis0a libvorbisenc2 libvotequorum8 libvulkan1 libwayland-server0 libwbclient0 libwrap0 libwtmpdb0 libwww-perl libwww-robotrules-perl libx11-6 libx11-data libx11-xcb1 libxau6 libxcb1 libxcb-dri3-0 libxcb-present0 libxcb-randr0 libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxdmcp6 libxext6 libxkbcommon0 libxml2 libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl libxml-sax-perl libxml-twig-perl libxrender1 libxshmfence1 libxslt1.1 libxtables12 libxxhash0 libyaml-0-2 libyaml-libyaml-perl libyang3 libz3-4 libzfs6linux libzpool6linux libzstd1 linux-base linux-sysctl-defaults locales login login.defs logrotate logsave lsof lvm2 lxcfs lxc-pve lzop man-db manpages mawk media-types memtest86+ mergerfs mesa-libgallium mokutil mount nano ncdu ncurses-base ncurses-bin ncurses-term netavark netbase netcat-traditional net-tools nfs-common nftables nmap nmap-common node-popper2 novnc-pve open-iscsi openssh-client openssh-server openssh-sftp-server openssl openssl-provider-legacy parted passwd pci.ids pciutils perl perl-base perl-modules-5.40 perl-openssl-defaults pinentry-curses pkg-config postfix procmail procps proxmox-archive-keyring proxmox-backup-client proxmox-backup-file-restore proxmox-backup-restore-image proxmox-default-kernel proxmox-firewall proxmox-headers-6.17.4-2-pve proxmox-headers-6.8 proxmox-kernel-6.17 proxmox-kernel-6.17.2-1-pve-signed proxmox-kernel-6.8 proxmox-kernel-helper proxmox-mail-forward proxmox-mini-journalreader proxmox-offline-mirror-docs proxmox-offline-mirror-helper proxmox-termproxy proxmox-ve proxmox-websocket-tunnel proxmox-widget-toolkit psmisc pve-cluster pve-container pve-docs pve-edk2-firmware pve-edk2-firmware-legacy pve-edk2-firmware-ovmf pve-esxi-import-tools pve-firewall pve-firmware pve-ha-manager pve-i18n pve-lxc-syscalld pve-manager pve-nvidia-vgpu-helper pve-qemu-kvm pve-xtermjs pve-yew-mobile-gui pve-yew-mobile-i18n python3 python3.13 python3.13-minimal python3-apt python3-autocommand python3-bcrypt python3-ceph-argparse python3-ceph-common python3-cephfs python3-certifi python3-cffi-backend python3-chardet python3-charset-normalizer python3-cryptography python3-dbus python3-debconf python3-debian python3-debianbts python3-idna python3-importlib-resources python3-inflect python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-minimal python3-more-itertools python3-pefile python3-pkg-resources python3-prettytable python3-pyvmomi python3-rados python3-rbd python3-reportbug python3-requests python3-rgw python3-setuptools python3-six python3-systemd python3-typeguard python3-typing-extensions python3-urllib3 python3-virt-firmware python3-wcwidth python3-yaml python3-zipp python-apt-common qemu-server qrencode readline-common reportbug rpcbind rrdcached rsync runit-helper samba-common samba-libs sed sensible-utils shared-mime-info shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned skopeo smartmontools smbclient snapraid socat spiceterm sqlite3 sqv ssh strace swtpm swtpm-libs swtpm-tools systemd systemd-boot-efi systemd-boot-tools systemd-sysv sysvinit-utils tar tcpdump thin-provisioning-tools time traceroute tzdata ucf udev ufw uidmap usbutils util-linux util-linux-extra vim vim-common vim-tiny virtiofsd vncterm wamerican wget whiptail wtmpdb xfsprogs xkb-data xsltproc xz-utils zfs-initramfs zfsutils-linux zfs-zed zlib1g zstd
G. Réseau & DNS¶
Configuration des bridges, IPs statiques et DNS.
Résultat :
auto lo
iface lo inet loopback
iface nic0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.21/24
gateway 192.168.1.254
bridge-ports nic0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
127.0.0.1 localhost.localdomain localhost
192.168.1.21 pve.local.lan pve
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
search local.lan
nameserver 192.168.1.254
H. Services Locaux (PBS / Samba / etc)¶
Vérifie si un Proxmox Backup Server est installé directement sur l'hôte.
Résultat :
I. Historique des manipulations (APT)¶
Utile pour retrouver QUAND les drivers ont été installés ou les kernels changés.
# Affiche les installations de kernel ou nvidia des 3 derniers mois
zgrep -E "install (pve-kernel|proxmox-kernel|nvidia)" /var/log/apt/history.log*
Résultat :
2. 📦 Audit du Conteneur LXC (ID 100 - Docker/Media)¶
A. Configuration LXC¶
C'est ici que se trouvent les directives de passthrough (lxc.cgroup...)
Résultat :
# Mount point donn%C3%A9es prot%C3%A9g%C3%A9es (mergerfs)
# Mount point m%C3%A9dias non-prot%C3%A9g%C3%A9s
# Mount point configs Docker
arch: amd64
cores: 4
features: nesting=1
hostname: docker-media
memory: 4096
mp0: /mnt/storage,mp=/mnt/storage
mp1: /mnt/media-bulk,mp=/mnt/media
mp2: /mnt/lxc-data/docker-100,mp=/opt/docker
nameserver: 192.168.1.254
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.1.254,hwaddr=BC:24:11:75:13:BC,ip=192.168.1.100/24,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-100-disk-0,size=32G
searchdomain: local.lan
swap: 512
unprivileged: 1
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir 0 0
B. Contenu Docker (Si accessible)¶
Si le conteneur démarre encore, listez les conteneurs Docker.
# Dans le conteneur (pct enter 100)
docker ps -a
ls -la /opt/docker/ # Ou votre chemin de config docker-compose
Résultat :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2e07587fc79 linuxserver/sabnzbd:latest "/init" 6 hours ago Up 58 minutes 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp sabnzbd
2a7ce036130d linuxserver/prowlarr:latest "/init" 6 hours ago Up 58 minutes 0.0.0.0:9696->9696/tcp, [::]:9696->9696/tcp prowlarr
7ff6741eea7f linuxserver/radarr:latest "/init" 6 hours ago Up 58 minutes 0.0.0.0:7878->7878/tcp, [::]:7878->7878/tcp radarr
8fcee9431d7d linuxserver/sonarr:latest "/init" 6 hours ago Up 58 minutes 0.0.0.0:8989->8989/tcp, [::]:8989->8989/tcp sonarr
f2108a949ed1 hello-world "/hello" 21 hours ago Exited (0) 21 hours ago eager_vaughan
total 44
drwxr-xr-x 8 root root 4096 Jan 23 23:12 .
drwxr-xr-x 4 root root 4096 Jan 23 20:26 ..
-rw-r--r-- 1 root root 1798 Jan 23 23:12 docker-compose.yml
drwxr-xr-x 6 root root 4096 Jan 23 22:16 homepage
drwxr-xr-x 4 root root 4096 Jan 23 20:30 jellyfin
drwxr-xr-x 6 1000 1000 4096 Jan 24 16:51 prowlarr
drwxr-xr-x 7 1000 1000 4096 Jan 24 16:55 radarr
drwxr-xr-x 6 1000 1000 4096 Jan 23 22:40 sabnzbd
-rw-r--r-- 1 root root 966 Jan 23 21:56 services.yaml
drwxr-xr-x 6 1000 1000 4096 Jan 24 17:06 sonarr
-rw-r--r-- 1 root root 92 Jan 23 21:55 widgets.yaml
3. 💾 Exploration des Sauvegardes PBS¶
Objectif : Trouver la sauvegarde "Saine" avant la suppression de la GTX 970.
A. Identifier le stockage PBS¶
Résultat:
Name Type Status Total (KiB) Used (KiB) Available (KiB) %
local dir active 68828456 12076900 53209540 17.55%
local-lvm lvmthin active 141553664 22875072 118678591 16.16%
pbs-backups pbs active 102626232 5518908 91848060 5.38%
B. Lister les backups disponibles¶
Remplacez PBS-STORAGE-ID par l'ID trouvé ci-dessus (ex: backup-server ou local-pbs).
Résulat (Liste des backups) :
Volid Format Type Size VMID
pbs-backups:backup/ct/100/2026-01-24T09:47:13Z pbs-ct backup 4367745067 100
pbs-backups:backup/ct/100/2026-01-24T10:03:00Z pbs-ct backup 4367745701 100
pbs-backups:backup/ct/100/2026-01-24T10:40:02Z pbs-ct backup 4367747608 100
pbs-backups:backup/ct/100/2026-01-24T10:40:42Z pbs-ct backup 4367748247 100
pbs-backups:backup/ct/100/2026-01-24T11:03:00Z pbs-ct backup 4367750746 100
pbs-backups:backup/ct/100/2026-01-24T13:03:00Z pbs-ct backup 4800358552 100
pbs-backups:backup/ct/100/2026-01-24T16:03:00Z pbs-ct backup 5765688759 100
pbs-backups:backup/ct/100/2026-01-24T17:03:00Z pbs-ct backup 5765740237 100
pbs-backups:backup/ct/101/2026-01-24T09:47:46Z pbs-ct backup 4944039513 101
pbs-backups:backup/ct/101/2026-01-24T10:03:19Z pbs-ct backup 4944039500 101
pbs-backups:backup/ct/101/2026-01-24T10:40:21Z pbs-ct backup 4944039501 101
pbs-backups:backup/ct/101/2026-01-24T10:41:00Z pbs-ct backup 4944039501 101
pbs-backups:backup/ct/101/2026-01-24T11:03:19Z pbs-ct backup 4944039501 101
pbs-backups:backup/ct/101/2026-01-24T13:03:31Z pbs-ct backup 4956381551 101
pbs-backups:backup/ct/101/2026-01-24T16:03:30Z pbs-ct backup 4968686195 101
pbs-backups:backup/ct/101/2026-01-24T17:03:25Z pbs-ct backup 4968694859 101
C. Recherche du fichier de config dans un backup (Avancé)¶
Si vous voulez voir le fichier de config /etc/pve/lxc/100.conf DANS un backup sans le restaurer (nécessite proxmox-backup-client et l'accès au serveur PBS).
Ceci est souvent plus simple via l'interface GUI :
- Aller sur le stockage PBS dans l'arbre de gauche.
- Onglet "Backups".
- Sélectionner un backup d'avant l'incident (ex: date > 1 semaine).
- Bouton "Show Configuration" : Cela montre le
100.conftel qu'il était.
Action : Comparer le 100.conf actuel avec celui du backup.
- Le backup contient-il les lignes
lxc.cgroup2...pour Nvidia ? -> C'est un backup "GTX 970". - Le backup est-il vide de ces lignes ? -> C'est peut-être un état intermédiaire.
Résultat : (Exemple fictif)
Tous les backups (les premiers backups ont juste 7h) contiennent les lignes lxc.cgroup2 en conf.
Une commande pourrait permettre de diff les conf ?
D'autres fichiers que conf à vérifier ?
4. PBS & Conteneurs¶
A. Configuration des Conteneurs 101 et 102¶
Vérifions les montages et IPs pour savoir si les backups sont à risque.
# Configuration du conteneur Management
pct config 101
# Configuration du conteneur Proxmox Backup Server (CRITIQUE)
pct config 102
Résultat :
arch: amd64
cores: 2
description: Mount point donn%C3%A9es prot%C3%A9g%C3%A9es (mergerfs)%0A Mount point m%C3%A9dias non-prot%C3%A9g%C3%A9s%0A Mount point configs Docker%0A
features: nesting=1
hostname: management
memory: 1024
mp0: /mnt/lxc-data/docker-101,mp=/opt/docker
mp1: /mnt/media-bulk,mp=/mnt/media
mp2: /mnt/lxc-data/docker-100,mp=/opt/docker
nameserver: 192.168.1.254
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.1.254,hwaddr=BC:24:11:40:24:A2,ip=192.168.1.101/24,ip6=auto,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-101-disk-0,size=16G
searchdomain: local.lan
swap: 256
unprivileged: 1
arch: amd64
cores: 2
description: mp0%3A /mnt/storage/pbs-datastore,mp=/mnt/datastore%0A
features: nesting=1
hostname: pbs
memory: 2048
nameserver: 192.168.1.254
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.1.254,hwaddr=BC:24:11:C8:51:8A,ip=192.168.1.102/24,ip6=auto,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-102-disk-0,size=100G
swap: 512
unprivileged: 0
B. Sauvegarde des configurations Docker (LXC 100)¶
Récupérons les fichiers Docker Compose pour référence.
# Lister les fichiers dans le dossier de config Docker mappé sur l'hôte
ls -R /mnt/lxc-data/docker-100/
# Afficher le contenu du docker-compose principal (pour Jellyfin/Arr stack)
cat /mnt/lxc-data/docker-100/docker-compose.yml
Résultat docker-compose :
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- JELLYFIN_PublishedServerUrl=http://192.168.1.100
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- /mnt/media:/media:ro
devices:
- /dev/dri:/dev/dri
restart: unless-stopped
sonarr:
image: linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- ./sonarr:/config
- /mnt/media/tv:/tv
- /mnt/media/downloads:/downloads
- /mnt/media/downloads:/config/downloads
ports:
- 8989:8989
restart: unless-stopped
radarr:
image: linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- ./radarr:/config
- /mnt/media/movies:/movies
- /mnt/media/downloads:/downloads
- /mnt/media/downloads:/config/downloads
ports:
- 7878:7878
restart: unless-stopped
prowlarr:
image: linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- ./prowlarr:/config
ports:
- 9696:9696
restart: unless-stopped
sabnzbd:
image: linuxserver/sabnzbd:latest
container_name: sabnzbd
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- UMASK=022
volumes:
- ./sabnzbd:/config
- /mnt/media/downloads:/downloads
- /mnt/media/downloads:/config/downloads
ports:
- 8080:8080
restart: unless-stopped
networks:
default:
driver: bridge
C. Vérification Stockage Réel PBS (Si CT 102 = PBS)¶
Si le CT 102 est bien votre serveur de backup, où écrit-il les données ? Exécutez ceci SI le conteneur 102 est démarré :
# Vérifier les points de montage internes du PBS
pct exec 102 -- findmnt /mnt/backup
pct exec 102 -- cat /etc/proxmox-backup/datastore.cfg
Si le conteneur 102 est éteint ou inaccessible, ignorez cette étape.
Résultat :
datastore: backup
comment
gc-schedule 2:00
notification-mode notification-system
path /mnt/datastore
5. 📝 Synthèse de l'Architecture Cible (Pour Réinstallation)¶
Remplir cette section après avoir récupéré les infos ci-dessus.
| Composant | Détail Config | Notes Spéciales |
|---|---|---|
| OS Host | Proxmox VE 9.1 | |
| Kernel | 6.17.4-2-pve | |
| Driver GPU | ? | |
| Stockage | MergerFS + SnapRAID | Configs dans /etc/fstab et /etc/snapraid.conf |
| LXC 100 | Non-privilégié | |
| Passthrough | video |
6. 🕵️ Exploration Avancée & Diff des Sauvegardes¶
A. Y a-t-il une sauvegarde de l'Hôte (Host) ?¶
Les backups CT/VM ne suffisent pas pour réparer le Kernel/Drivers. Vérifions si l'hôte a été sauvegardé.
export PBS_REPOSITORY=192.168.1.102:backup
# Listons TOUS les snapshots, y compris ceux de type 'host'
proxmox-backup-client list --repository "root@pam@192.168.1.102:backup"
# Note : Il vous demandera peut-être le mot de passe utilisateur, ou le mot de passe du conteneur PBS
Résulat :
B. "Diff" de configuration du Conteneur¶
Comparons le fichier de config du conteneur 100 ACTUEL avec celui d'un BACKUP.
- Choisir un snapshot (ex:
ct/100/2026-01-24T09:47:13Z) - Récupérer l'ancienne config (commande à adapter avec le bon snapshot) :
# Récupération du fichier etc/pve/lxc/100.conf contenu dans l'archive etc.pxar du backup
# Cette commande est complexe, si elle échoue, utilisez la méthode GUI (Show Configuration)
proxmox-backup-client restore ct/100/2026-01-24T09:47:13Z etc.pxar /tmp/restore_config --repository "root@pam@192.168.1.102:backup" --pattern "pve/lxc/100.conf"
(Si trop complexe, copiez le contenu de "Show Configuration" depuis l'interface web pour 2 backups différents et collez-les ici pour comparaison)
C. Procédure de Restauration Sans Risque ("Revert" possible)¶
Pour tester un backup SANS écraser l'existant :
- Dans l'interface web Proxmox > Stockage
pbs-backups> Backups. - Sélectionnez le backup "sain" (ex: 09:47).
- Cliquez sur Restore.
- TRES IMPORTANT : Dans la case
CT ID, changez100par200(ou un ID libre). - Cochez "Unprivileged" si l'original l'était.
- Restore.
Cela créera un clone 200 identique à l'état passé. Vous pourrez le démarrer (en arrêtant le 100 avant pour éviter conflit IP) pour tester. Si KO, supprimez le 200 et rien n'est perdu.
Avez-vous besoin d'aide pour exécuter ce test de "Restauration en Clone" ?