/ dev / sda1: Các nút là một phần của danh sách liên kết mồ côi bị hỏng được tìm thấy


16

Tôi đang sử dụng máy tính xách tay Ubuntu 2015.04 (với nhà người dùng được mã hóa ecryptfs) thì đột nhiên, ổ cứng trở thành chỉ đọc.

Tôi đã khởi động lại và bây giờ nó bị kẹt ở đây:

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

Phần thú vị của nhật ký hệ thống:

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

Tôi không chắc đó là ACPI hay vấn đề về đĩa. Tôi đã thử cập nhật lên BIOS mới nhất Lenovo Thinkpad T520, nhưng nó không khởi động tốt hơn.

Làm thế nào để khắc phục vấn đề này, hoặc nếu đĩa bị chết, làm thế nào để ít nhất xuất dữ liệu từ nhà được mã hóa của tôi sang ổ đĩa ngoài?


8
nó đã tìm thấy lỗi với hệ thống tập tin gốc. làm như nó nói, chạy fsck /dev/sda1và tương tác để nó hiển thị cho bạn các lỗi nó tìm thấy và chọn sửa chúng. Đi qua một lần nói không có thời gian để xem có bao nhiêu lỗi. Nếu chúng dường như chỉ dành cho các tệp không quan trọng, như tệp nhật ký, hãy xem lại một lần nữa. điều này có thể dẫn đến việc mất tập tin, vì vậy nếu bạn có thể sao chép phân vùng trước để nói thiết bị usb, trước tiên hãy làm như vậy.
meuh

Câu trả lời:


19
  1. Tại dấu nhắc, nhập fsck /dev/sda<number>và nhấn enter (tìm <number>từ nhật ký của bạn dựa trên thư mục chứa lỗi hệ thống tệp)
  2. Nhập yvào tất cả các lỗi để sửa chúng
  3. exit

cách tìm <number>
Kapil Yadav

Tyvm. Nó đã làm việc.
Viraths

1
@KapilYadav: bạn có thể tìm thấy số trong nhật ký lỗi bị ném. Ví dụ: trong câu hỏi của OP, nhật ký cho biết system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.Do đó, con số là1
Rocky Inde

0

Trong thiết bị đầu cuối

sudo -i (nếu không phải là người dùng root, nếu không hãy bỏ qua điều này)

fdisk -l

Hãy tìm ổ đĩa gốc của bạn.

Tôi sử dụng Kali Linux trong raspberry pi để cái của tôi trông giống như mmcblk0p2thay vì sdb1... Xem cho bạn.

`umount /dev/mmcblk0p2`

fsck -y /dev/mmcblk0p2

poweroff


-1

Tôi đã có cùng một vấn đề. Tôi đã tạo một tệp hình ảnh từ SDCard Raspbian hoạt động bằng Win32DiskImager. Khi tôi chạy pishrink, công cụ cho tôi lỗi "danh sách inode mồ côi". Vì vậy, tôi đã làm theo gợi ý từ Rocky Inde và thực hiện fsck. Nó gặp phải và sửa một số lỗi nên tôi chạy lại pishrink và nó đã hoạt động! Cảm ơn Rock Inde.

Nếu bạn đã đạt được điều này và vẫn còn bối rối không biết làm thế nào, tôi đã tạo ra một kịch bản, một phần dựa trên pishrink, để khắc phục những "nút mồ côi" này. Bạn có thể kiểm tra nguồn script tại

https://github.com/gmenezesg/fix_orphaned_inode_list

Sử dụng:

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]

Kịch bản:

#!/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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.