/ dev / sda1: इनोड जो एक दूषित अनाथ लिंक्ड सूची का हिस्सा थे


16

मैं अपने Ubuntu 2015.04 (ecryptfs-एन्क्रिप्टेड यूजर होम के साथ) लैपटॉप का उपयोग कर रहा था, जब अचानक, हार्ड ड्राइव केवल-पढ़ने के लिए बन गया।

मैंने रिबूट किया और अब यह इस पर अटक गया है:

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

सिस्टम लॉग का दिलचस्प हिस्सा:

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

मुझे यकीन नहीं है कि यह एक एसीपीआई या डिस्क की समस्या है। मैंने अपने लेनोवो थिंकपैड T520 के नवीनतम BIOS को अपडेट करने की कोशिश की, लेकिन यह बेहतर बूट नहीं करता है।

इस समस्या को कैसे ठीक करें, या यदि डिस्क मर रही है तो कम से कम मेरे एन्क्रिप्टेड घर से डेटा को बाहरी ड्राइव पर कैसे निर्यात करें?


8
इसे रूट फाइल सिस्टम के साथ त्रुटियां मिली हैं। जैसा कि यह कहता है, चलाएं fsck /dev/sda1और अंतःक्रियात्मक रूप से इसे आपको मिली त्रुटियों को दिखाएं और उन्हें सही करने के लिए चुनें। यह देखने के लिए हर समय कहो कि कितनी त्रुटियां हैं। यदि वे केवल बिना किसी महत्व की फाइलों के लिए प्रतीत होते हैं, जैसे लॉग फाइलें, फिर से हाँ कहकर जाना। इससे फ़ाइलों का नुकसान हो सकता है, इसलिए यदि आप किसी USB डिवाइस को कहने के लिए विभाजन को कॉपी कर सकते हैं, तो पहले ऐसा करें।
मयूह

जवाबों:


20
  1. प्रॉम्प्ट पर, टाइप करें fsck /dev/sda<number>और एंटर करें ( <number>फाइल सिस्टम त्रुटियों वाली निर्देशिका के आधार पर अपने लॉग से देखें)
  2. yउन्हें ठीक करने के लिए सभी त्रुटियों को दर्ज करें
  3. exit

कैसे पता करें <नंबर>
कपिल यादव

Tyvm। इसने काम कर दिया।
विराट

1
@KapilYadav: आप उस त्रुटि लॉग में संख्या पा सकते हैं जो फेंक दिया जाता है। उदाहरण के लिए, ओपी के सवाल में लॉग कहता है system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.इसलिए नंबर1
रॉकी इंड जूल

0

टर्मिनल में

sudo -i (यदि रूट उपयोगकर्ता नहीं है, तो इसे छोड़ दें)

fdisk -l

अपने रूट ड्राइव के लिए देखो।

मैं रास्पबेरी पाई में काली लिनक्स उपयोग करती हैं इसलिए मेरा तरह दिखता है mmcblk0p2के बजाय sdb1तुम्हारा के लिए ... देखें।

`umount /dev/mmcblk0p2`

fsck -y /dev/mmcblk0p2

poweroff


-1

मैं एक ही मुद्दा था। मैंने Win32DiskImager का उपयोग करके एक कार्यशील रास्पियन एसडीकार्ड से एक छवि फ़ाइल बनाई है। जब मैंने पिशरिंक चलाया, तो टूल ने मुझे "अनाथ इनोड सूची" त्रुटि दी। इसलिए मैंने रॉकी इंडे से सुझाव का पालन किया और fsck निष्पादित किया। इसने कुछ त्रुटियों का सामना किया और तय किया ताकि मैं फिर से पिश्रंक चलाऊं और यह काम करे! धन्यवाद रॉक इंडे।

यदि आप इसे दूर कर चुके हैं और अभी भी असमंजस में हैं कि इसे कैसे किया जाए, तो मैंने इन "अनाथ इनोड्स" को ठीक करने के लिए एक स्क्रिप्ट बनाई है, जो आंशिक रूप से पिश्रिंक पर आधारित है। आप स्क्रिप्ट स्रोत पर देख सकते हैं

https://github.com/gmenezesg/fix_orphaned_inode_list

उपयोग:

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]

स्क्रिप्ट:

#!/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"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.