/ dev / sda1: Inodes, die Teil einer beschädigten verwaisten verknüpften Liste waren, wurden gefunden


16

Ich habe meinen Ubuntu 2015.04-Laptop (mit ecryptfs-verschlüsseltem Benutzer zu Hause) normalerweise verwendet, als die Festplatte plötzlich schreibgeschützt wurde.

Ich habe neu gestartet und jetzt ist es so:

[    0.703206] ACPI PCC probe failed.
starting version 219
error: /dev/sdb: No medium found
error: /dev/sdb: No medium found
Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default or ^D to
try again to boot into default mode.
root@nico:~#

Interessanter Teil der Systemprotokolle:

-- Unit systemd-fsckd.service has begun starting up.
system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.
kernel: ACPI warning: \_SB_.PCIO.PEG_.VID_._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20141107/nsarguments-95)
kernel: ACPI warning: \_SB_.PCIO.PEG_.VID_._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20141107/nsarguments-95)
kernel: thinkpad_acpi: EC reports that Thermal Table has changed
system-fsck[475]: /dev/sda1: Inodes that were part of a corrupted orphan linked list found.
system-fsck[475]: /dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
system-fsck[475]: (i.e., without -a or -p options)
system-fsck[475]: fsck failed with error code 4.
system-fsck[475]: Running request emergency.target/start/replace
systemd[1]: system-fsck-root.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start File System Check on Root Device
-- Subject: Unit system-fsck-root.service has failed

Ich bin nicht sicher, ob es sich um ein ACPI- oder ein Festplattenproblem handelt. Ich habe versucht, mein Lenovo Thinkpad T520 auf das neueste BIOS zu aktualisieren, aber es bootet nicht besser.

Wie kann ich dieses Problem beheben, oder wenn die Festplatte nicht mehr funktioniert, exportieren Sie die Daten zumindest von meinem verschlüsselten Zuhause auf ein externes Laufwerk?


8
Es wurden Fehler im Root-Dateisystem gefunden. Führen Sie es aus fsck /dev/sda1und lassen Sie es interaktiv die gefundenen Fehler anzeigen und korrigieren Sie sie. Gehen Sie einmal durch und sagen Sie die ganze Zeit Nein, um zu sehen, wie viele Fehler es gibt. Wenn sie nur für Dateien ohne Bedeutung zu sein scheinen, wie z. B. Protokolldateien, wiederholen Sie den Vorgang mit Ja. Dies kann zum Verlust von Dateien führen. Wenn Sie also die Partition zuerst kopieren können, um beispielsweise ein USB-Gerät zu verwenden, müssen Sie dies zuerst tun.
Meuh

Antworten:


19
  1. Geben Sie an der Eingabeaufforderung Folgendes ein fsck /dev/sda<number>und drücken Sie die Eingabetaste (suchen Sie in <number>Ihren Protokollen nach dem Verzeichnis, das die Dateisystemfehler enthält)
  2. Geben Sie yalle Fehler ein, um sie zu beheben
  3. exit

So finden Sie <Nummer>
Kapil Yadav

Tyvm. Es funktionierte.
Viraths

1
@KapilYadav: Sie können die Nummer in den Fehlerprotokollen finden, die geworfen werden. Beispielsweise steht in OPs Frage im Protokoll, dass system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.die Nummer1
Rocky Inde

0

Im Terminal

sudo -i (Wenn Sie kein Root-Benutzer sind, überspringen Sie dies.)

fdisk -l

Suchen Sie nach Ihrem Root-Laufwerk.

Ich benutze Kali Linux in Raspberry Pi so meins etwas wie sieht mmcblk0p2statt sdb1... Siehe für Ihre.

`umount /dev/mmcblk0p2`

fsck -y /dev/mmcblk0p2

poweroff


-1

Ich hatte das gleiche Problem. Ich habe mit Win32DiskImager eine Bilddatei von einer funktionierenden Raspbian-SD-Karte erstellt. Wenn ich pishrink ausführte, gab mir das Tool den Fehler "verwaiste Inode-Liste". Also bin ich dem Vorschlag von Rocky Inde gefolgt und habe fsck ausgeführt. Es sind Fehler aufgetreten und wurden behoben, so dass ich pishrink erneut ausführte und es funktionierte! Vielen Dank Rock Inde.

Wenn Sie so weit gekommen sind und immer noch nicht wissen, wie es geht, habe ich ein Skript erstellt, das teilweise auf pishrink basiert, um diese "verwaisten Inodes" zu beheben. Sie können die Skriptquelle unter überprüfen

https://github.com/gmenezesg/fix_orphaned_inode_list

Verwendung:

wget https://raw.githubusercontent.com/gmenezesg/fix_orphaned_inode_list/master/fix_orphaned_inode_list.sh

sudo chmod +x fix_orphaned_inode_list.sh

sudo ./fix_orphaned_inode_list.sh [imagefile.img]

Skript:

#!/bin/bash

function cleanup() {
  if losetup $loopback &>/dev/null; then
        if [ "$verbose_mode" = true ]; then
        echo "### Running cleanup ###"
        fi
        losetup -d "$loopback"
  fi
}

verbose_mode=false

while getopts ":v" opt; do
  case "${opt}" in
    v) verbose_mode=true ;;
    *) usage ;;
  esac
done
shift $((OPTIND-1))

usage() { echo "Usage: $0 [-v] imagefile.img"; exit -1; }

if [ "$verbose_mode" = true ]; then
echo "### Mapping arguments ###"
fi

img="$1"

if [ "$verbose_mode" = true ]; then
echo "### Usage checks ###"
fi

if [[ -z "$img" ]]; then
  usage
fi
if [[ ! -f "$img" ]]; then
  echo "ERROR: $img is not a file..."
  exit -2
fi
if (( EUID != 0 )); then
  echo "ERROR: You need to be running as root."
  exit -3
fi

echo "#Check that what we need is installed"
for command in parted losetup tune2fs md5sum e2fsck resize2fs; do
  which $command 2>&1 >/dev/null
  if (( $? != 0 )); then
    echo "ERROR: $command is not installed."
    exit -4
  fi
done

if [ "$verbose_mode" = true ]; then
echo "### Setting cleanup at script exit ###"
fi
trap cleanup ERR EXIT

beforesize=$(ls -lh "$img" | cut -d ' ' -f 5)
parted_output=$(parted -ms "$img" unit B print | tail -n 1)
partnum=$(echo "$parted_output" | cut -d ':' -f 1)
partstart=$(echo "$parted_output" | cut -d ':' -f 2 | tr -d 'B')
loopback=$(losetup -f --show -o $partstart "$img")
tune2fs_output=$(tune2fs -l "$loopback")
currentsize=$(echo "$tune2fs_output" | grep '^Block count:' | tr -d ' ' | cut -d ':' -f 2)
blocksize=$(echo "$tune2fs_output" | grep '^Block size:' | tr -d ' ' | cut -d ':' -f 2)

fsck -y "$loopback"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.