/ dev / sda1: trovati gli nodi che facevano parte di un elenco di collegamenti orfani danneggiati


16

Stavo usando il mio computer portatile Ubuntu 2015.04 (con utente home con crittografia ecryptfs) normalmente quando improvvisamente, il disco rigido è diventato di sola lettura.

Ho riavviato e ora è bloccato su questo:

[    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:~#

Parte interessante dei registri di sistema:

-- 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

Non sono sicuro che si tratti di un ACPI o di un problema del disco. Ho provato ad aggiornare all'ultimo BIOS il mio Lenovo Thinkpad T520, ma non si avvia meglio.

Come risolvere questo problema o se il disco sta morendo come almeno esportare i dati dalla mia casa crittografata su un'unità esterna?


8
ha trovato errori con il filesystem di root. fai come dice, esegui fsck /dev/sda1e lascia che ti mostri interattivamente gli errori rilevati e scegli di correggerli. Passa una volta dicendo no per tutto il tempo per vedere quanti errori ci sono. Se sembrano essere solo per file senza importanza, come i file di registro, ripeti di nuovo dicendo sì. questo può comportare la perdita di file, quindi se è possibile copiare prima la partizione per dire un dispositivo USB, farlo prima.
Meuh

Risposte:


19
  1. Al prompt, digitare fsck /dev/sda<number>e premere Invio (cercare i <number>dai registri in base alla directory che contiene gli errori del file system)
  2. Immettere ytutti gli errori per correggerli
  3. exit

come trovare <numero>
Kapil Yadav il

Tyvm. Ha funzionato.
Viraths,

1
@KapilYadav: puoi trovare il numero nei log degli errori che vengono generati. Ad esempio, nella domanda di OP il registro dice system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.quindi che il numero è1
Rocky Inde,

0

Nel terminale

sudo -i (se non un utente root, altrimenti salta questo)

fdisk -l

Cerca il tuo root drive.

Uso Kali Linux in Raspberry Pi, quindi il mio assomiglia a qualcosa mmcblk0p2invece di sdb1... Vedi il tuo.

`umount /dev/mmcblk0p2`

fsck -y /dev/mmcblk0p2

poweroff


-1

Ho avuto lo stesso problema. Ho creato un file di immagine da una Raspbian SDCard funzionante usando Win32DiskImager. Quando ho eseguito pishrink, lo strumento mi ha dato l'errore "Elenco di inode orfano". Quindi ho seguito il suggerimento di Rocky Inde ed eseguito fsck. Ha riscontrato e corretto alcuni errori, quindi ho eseguito nuovamente la pishrink e ha funzionato! Grazie Rock Inde.

Se sei arrivato così lontano e sei ancora confuso su come farlo, ho creato uno script, in parte basato su pishrink, per correggere questi "inode orfani". Puoi controllare l'origine dello script all'indirizzo

https://github.com/gmenezesg/fix_orphaned_inode_list

Uso:

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]

script:

#!/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"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.