Я использовал свою 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
Я не уверен, является ли это ACPI или дисковой проблемой. Я пытался обновить к последнему BIOS свою Lenovo Thinkpad T520, но это не загружается лучше.
Как решить эту проблему, или если диск умирает, как, по крайней мере, экспортировать данные с моего зашифрованного дома на внешний диск?
fsck /dev/sda<number>
и нажимают Enter (ищите <number>
от Ваших журналов на основе каталога, который содержит ошибки файловой системы) y
во все ошибки зафиксировать их exit
В Терминале
sudo -i
(если не пользователь root, иначе пропустите это)
fdisk -l
, Ищут Ваш корневой диск.
я использую Kali Linux в пи малины так виды шахты что-то как mmcblk0p2
вместо sdb1
... См. Ваш.
`umount /dev/mmcblk0p2`
fsck -y /dev/mmcblk0p2
poweroff
У меня была та же проблема. Я создал файл изображения из рабочего Raspbian SDCard, использующий Win32DiskImager. Когда я выполнил pishrink, инструмент дал мне "осиротевшую ошибку" списка inode. Таким образом, я следовал за предложением от Rocky Inde и выполнил fsck. Это встретилось и зафиксировало некоторые ошибки, таким образом, я выполнил pishrink снова, и это работало! Спасибо Скала Индия.
Если Вы добрались настолько далеко и все еще смущены, как сделать это, я создал сценарий, частично на основе pishrink, для фиксации этих "осиротевших inodes". Можно проверить источник сценария в
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"