/ dev / sda1: Inode yang merupakan bagian dari daftar tautan yatim yang rusak ditemukan

16

Saya menggunakan laptop Ubuntu 2015.04 (dengan pengguna ecryptfs-dienkripsi) biasanya ketika tiba-tiba, hard drive menjadi read-only.

Saya reboot dan sekarang macet di ini:

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

Bagian yang menarik dari log sistem:

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

Saya tidak yakin apakah ini masalah ACPI atau disk. Saya mencoba memperbarui ke BIOS terbaru Lenovo Thinkpad T520 saya, tetapi tidak bisa boot dengan lebih baik.

Bagaimana cara memperbaiki masalah ini, atau jika disk sekarat bagaimana setidaknya mengekspor data dari rumah terenkripsi saya ke drive eksternal?

Nicolas Raoul
sumber
8
ia telah menemukan kesalahan pada sistem file root. lakukan seperti yang dikatakan, jalankan fsck /dev/sda1dan secara interaktif biarkan ia menunjukkan kepada Anda kesalahan yang ditemukan dan memilih untuk memperbaikinya. Pergi sekali mengatakan tidak sepanjang waktu untuk melihat berapa banyak kesalahan. Jika sepertinya hanya untuk file yang tidak penting, seperti file log, lanjutkan lagi dengan mengatakan ya. ini dapat menyebabkan hilangnya file, jadi jika Anda dapat menyalin partisi terlebih dahulu untuk mengatakan perangkat usb, lakukan terlebih dahulu.
meuh

Jawaban:

19
  1. Saat diminta, ketik fsck /dev/sda<number>dan tekan enter (cari <number>dari log Anda berdasarkan direktori yang berisi kesalahan sistem file)
  2. Masukkan ysemua kesalahan untuk memperbaikinya
  3. exit
Rocky Inde
sumber
bagaimana menemukan <number>
Kapil Yadav
Tyvm. Itu berhasil.
Viraths
1
@KapilYadav: Anda dapat menemukan nomor di log kesalahan yang dibuang. Sebagai contoh, dalam pertanyaan OP, log mengatakan system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.Karena itu angkanya1
Rocky Inde
0

Di Terminal

sudo -i (jika bukan pengguna root, lewati saja ini)

fdisk -l

Cari drive root Anda.

Saya menggunakan Kali Linux di raspberry pi sehingga milik saya terlihat seperti mmcblk0p2bukannya sdb1... Lihat milik Anda.

`umount /dev/mmcblk0p2`

fsck -y /dev/mmcblk0p2

poweroff

tidak ada
sumber
-1

Saya memiliki masalah yang sama. Saya telah membuat file gambar dari Raspbian SDCard yang berfungsi menggunakan Win32DiskImager. Ketika saya menjalankan pishrink, alat itu memberi saya kesalahan "daftar inode yatim". Jadi saya mengikuti saran dari Rocky Inde dan mengeksekusi fsck. Itu menemukan dan memperbaiki beberapa kesalahan jadi saya menjalankan pishrink lagi dan itu berhasil! Terima kasih Rock Inde.

Jika Anda sampai sejauh ini dan masih bingung bagaimana melakukannya, saya telah membuat skrip, sebagian berdasarkan pishrink, untuk memperbaiki "inode yatim piatu" ini. Anda dapat memeriksa sumber skrip di

https://github.com/gmenezesg/fix_orphaned_inode_list

Pemakaian:

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]

Naskah:

#!/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"
pengguna408841
sumber