/ dev / sda1: Yetim bağlantılı bozuk bir listenin parçası olan düğümler bulundu


16

Aniden, sabit disk salt okunur hale geldiğinde Ubuntu 2015.04 (ecryptfs şifreli kullanıcı evinde) dizüstü bilgisayarımı normalde kullanıyordum.

Yeniden başlattım ve şimdi bu sıkışmış:

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

Sistem günlüklerinin ilginç kısmı:

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

ACPI veya disk sorunu olup olmadığından emin değilim. Lenovo Thinkpad T520 cihazımın en son BIOS'unu güncellemeyi denedim, ancak daha iyi açılmıyor.

Bu sorunu nasıl düzeltebilirim veya disk ölüyorsa, en azından şifreli evimdeki verileri harici bir sürücüye nasıl aktarabilirim?


8
kök dosya sisteminde hatalar buldu. söylediği gibi yapın, çalıştırın fsck /dev/sda1ve etkileşimli olarak size bulduğu hataları göstermesine izin verin ve düzeltmeyi seçin. Kaç kez hata olduğunu görmek için her zaman hayır diyerek devam edin. Yalnızca günlük dosyaları gibi önemsiz dosyalar için görünüyorlarsa, tekrar evet diyerek devam edin. bu dosya kaybına neden olabilir, bu yüzden önce bir usb cihazı söylemek için bölümü kopyalayabilirseniz, önce yapın.
meuh

Yanıtlar:


20
  1. Komut istemine yazın fsck /dev/sda<number>ve enter tuşuna basın ( <number>dosya sistemi hatalarını içeren dizine dayalı olarak günlüklerinizden arama yapın)
  2. yDüzeltmek için tüm hataları girin
  3. exit

nasıl bulunur <sayı>
Kapil Yadav

Tyvm. İşe yaradı.
Viraths

1
@KapilYadav: Numarayı atılan hata günlüklerinde bulabilirsiniz. Örneğin, OP'nin sorusunda günlükte system-fsck[475]: /dev/sda1 contains a file system with errors, check forced.1
Dence

0

Terminalde

sudo -i (kök kullanıcı değilse, bunu atlayın)

fdisk -l

Kök sürücünüzü arayın.

Ahududu pi Kali Linux kullanın böylece benim mmcblk0p2yerine bir şey gibi görünüyor sdb1... Sizin için bakın.

`umount /dev/mmcblk0p2`

fsck -y /dev/mmcblk0p2

poweroff


-1

Aynı sorunu yaşadım. Win32DiskImager kullanarak çalışan bir Raspbian SDCard bir görüntü dosyası oluşturdum. Pishrink'i çalıştırdığımda, araç bana "yetimsiz inode listesi" hatasını verdi. Bu yüzden Rocky Inde'nin önerisini takip ettim ve fsck idam ettim. Yine pishrink koştu ve işe yaradı ve bazı hataları düzeltildi! Teşekkürler Rock Inde.

Eğer bu kadar ileri gittiyseniz ve hala nasıl yapılacağını düşünüyorsanız, bu "artık inode" ları düzeltmek için kısmen pishrink'e dayanan bir komut dosyası oluşturdum. Komut dosyası kaynağını şuradan kontrol edebilirsiniz:

https://github.com/gmenezesg/fix_orphaned_inode_list

Kullanımı:

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]

Senaryo:

#!/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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.