LINUX.ORG.RU

ОС не видит один из логических разделов HDD

 , ,


0

1

Столкнулся с такой проблемой. Может кто знает как решить.
Суть проблемы.
ОС- OpenSUSE 12.2_64
Было необходимо поменять тип fs на хомяке.
Хомяк - целый отдельный HDD (sda1)

  • 1. Загрузился с флешки в rescue
  • 2. Подмонтировал хомяка в /mnt/home
  • 3. Подмонтировал внешний HDD в /mnt/hdd
  • 4. tar'ом слил бэкап хомяка в /mnt/hdd/home.tar без сжатия. Ошибок при копировании не было.
     tar -cpvf /mnt/hdd/home.tar /mnt/home
  • 5. Отмонтировал /mnt/home
  • 6. Пересоздал fs на /dev/sda1 (mkfs.ext4)
  • 7. Подмонтировал взад /dev/sda1 в /mnt/home
  • 7. При попытке разорхивации tar'ом
    tar --same-owner -xpvf /mnt/hdd/home.tar -C /
    сначала посыпались ошибки:
    tar: a lone zero block at ....
    tar: Exiting with failure status due to previous errors
    
  • 8. Добавил опцию -i, как рекомендовали тут
    tar --same-owner -xipvf /mnt/hdd/home.tar -C /

Стали сыпаться различные ошибки - невозможно прочитать файл,
неправильная дата, неправильный файл и т.д.
Часть файлов при этом разорхивируется, но с каждой попыткой я
получал не всегда один и тот же результат - обломы были на разных файлах.
Что за бред?
Начал подозревать, что проблема с контроллером SATA/USB. (хард совсем новый, ни разу не юзанный).
Подключаю к другому контроллеру и что вижу - в /dev/ есть sdc1, но нет раздела sdc2!.
Возвращаю взад старый контроллер и вижу /dev/sdc2.
Первое что приходит в голову - попробовать с помощью dd_rescue в несколько
проходов слить home.tar на другой HDD. Есть у кого какие мысли?

Дополнение:
Внешний HDD разбивал консольным fdisk. Таблица MBR.
На нем 2 primary раздела sdc1 и sdc2.
На первом reiserfs восстановлен из iso бэкапа, второй форматирован в ext4 средствами mkfs.ext4.



Последнее исправление: bearpuh (всего исправлений: 1)

dd_rescue можно, но я бы сначала изучил возможность вскрыть бокс с винтом и подцепить его напрямую, без USB. Там можно будет, и SMART прочитать, и лишних электронных компонент не будет.

То, что исчезает второй раздел очень странно, MBR в одном секторе, в уникальных случаях диск способен отдавать неправильных сектор, обычно диск возвращает, либо правильно прочитанный сектор, либо ошибку чтения. Поэтому, я друмаю, что, раз /dev/sdc2 то есть, то нет, то дело не в самом диске, а в электронике, подключающий диск к USB.

mky ★★★★★
()
Ответ на: комментарий от mky

ddrescue ничего не дал - файл скопировался без ошибок, однако при тесте таром - ошибок еще больше.
Подключить напрямую нет возможности - только ноуты, не могу разбирать.
При подключениии к другому проверенному контроллеру
раздел sdc2 не появляется в /dev/, однако fdisk его видит.

fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p

Disk /dev/sdc: 500.1 GB, 500107862016 bytes, 122096646 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0xea0e8cc3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   335546367  1342177280   83  Linux
/dev/sdc2       335546368   976773167  2564907200   83  Linux
mount -t ext4 /dev/sdc2 /mnt/disk_source
mount: special device /dev/sdc2 does not exist

Чудеса в решете...

bearpuh
() автор топика
Ответ на: комментарий от bearpuh

Blocks 1342177280 это килобайты.

1342177280/(1024*1024*1024) = 1.25

1,25 чего? Террабайта, правильно. А винт какого размера?

В /proc/partitions тоже бред с размером первого раздела?

mky ★★★★★
()
Ответ на: комментарий от mky

Диск 500ГБ, там же в выводе fdisk'a инфа есть.
Вот что в /proc/partitions. «Нехороший диск» - sdc.
Прочекал fsck - нашел ошибки и поправил их,
но ситуацию это не исправило. Сейчас пытаюсь вытащить данные из битого архива вот таким путем.
(Вторые сутки уже пошли).

cpio -ivd -H tar < /path_to_tar/home.tar
Разорхивирую на другой HDD.
Много файлов уже разорхивировалось, будем надеяться, что они нормальными окажутся.

bearpuh
() автор топика
Ответ на: комментарий от bearpuh

То, что диск 500 Гбайт я увидел, я обращал внмание на то, что в выводе fdisk бредятина, а вас это не обеспокоило.

В выводе /proc/partitions информация реалистична. Возможно, раздел даже будет доступен, если создать файл /dev/sdc2 вручную через mknod (указав мажор/минор 8/34). Почему /dev/sdc2 не создаётся при подключении сказать не могу, возможно, что udev неправильно определяет размер (как и fdisk) и поэтому оказывается, так как раздел за границами диска.

fsck на /dev/sdc2 я бы не советовал запускать. Только на образ, скопрированный с помощью ddrescue или ещё как. Бывает, что на битом диске fsck делает ситуацию ещё хуже.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.