My book live восстановление прошивки

Я уже упоминал, что "окирпичил" свой MBL проводя различные эксперименты с ПО. Случилось это на 3-ий день использования. Паника. Ни через WEB-морду, ни через SSH в него не войти. Роутер его не видит. Ресеты кнопками и вилками результатов не дали. Опять залез в Сеть.

Решение нашлось, но оно мне не очень понравилось( сначала).

Т. к. на девайсе стоит линуксовая ОС Debian, то процесс востановления придётся проводить в среде Linux.

И ещё одно. Девайс придётся разобрать до винтика! Думаю, не стоит и говорить, что после этого ни о какой гарантии не может быть и речи.

И так, что нам нужно сделать, что бы оживить окирпиченный MBL? Для начала разобрать.

Внешний корпус не имеет видимых креплений. Они расположены внутри корпуса и представляют собой 4 защёлки. Я их открыл при помощи канцелярского ножа, аккуратно просунув между крышкой о торцевой частью корпуса в определённых местах. Что бы защёлки обратно не захлопнулись, я под них вставлял зубочистки.

Дальнейшая разборка заключается в снятии кожуха и извлечении материнской платы.

Разборку Мы завершили. Теперь необходимо подготовить "большого брата" к перепрошивке жесткого диска MBL.

Нам потребуется любой стабильно работающий образ Линукс-системы, например Ubuntu 12 или 13. Возьмём их

Вариантов применения Linux 3:

– физически установить ОС Linux на ПК,

– Загрузиться с загрузочной флешки с OС Linux,

– поставить Linux в виртуальной машине и настроить IDE.

Все варианты подойдут, однако 2 и 3 менее надёжны.

Я использовал первый вариант. У меня имелся системник с неработающим DVD-приводом, 1,9 ГГЦ процессором, 1 Гигом оперативки , 160 ГБ HDD и необходимыми SATA-"хвостами"- будуший сервер или будущий металлолом.

Я поставил на него Ubuntu 12 c загрузочной флешки, изготовленной при помощи проги Unetbootin-windows-585.

Доступ в интернет у меня был получен автоматически, т.к. ПК был подключен через роутер.

Подключаем наш диск к SATA-хвостам нашего компа.

Вся суть процесса отражена в скрипте debricker.sh , который мы без изменений положим в папку /home/ubuntu

Теперь нужно запустить терминал. В верхнем правом углу нажимаем значок Ubuntu. В появившемся окне в строке поиска набираем terminal, ниже появится ярлык, который и следует запустить (достаточно одного клика).

Далее нам нужно получить права «суперадмина». Набираем в консоли:

Необходима для обработки скрипта установка из репозитория служб mdadm и сurl:

get install mdadm

apt-get install curl

Теперь необходимо определить букву нашего диска:

Выбираем который нам необходим. Запускаем скрипт. Набираем в терминале:

bash / home / ubuntu / debricker.sh / dev / sd?

Вместо ? конечно буква нужного нам диска.

Скрипт найдёт жесткий диск MBL и если нет никаких проблем, то попросит согласие на запуск, на что мы жмем клавишу “Y”. В процессе будет загружена последняя прошивка с оффсайта, так же у вас несколько раз спросят согласие, где вы должны нажать вышеуказанную клавишу. Все должно кончиться сообщением: “all done! device should be debricked!”, что значит, процедура раскирпичивания прошла успешно.

Если есть желание поставить какую-то определённую прошивку:

-скачиваем файл прошивки и извлекаем из него файл rootfs.img программой 7-Zip

-выкладываем файл rootfs.img в папку /home/ubuntu

bash / home / ubuntu / debricker.sh / dev / sd? /home/ubuntu / rootfs.img

Выключаем компьютер, снимаем жесткий диск и возвращаем на место. Запускаем MBL, настраиваем и радуемся жизни.

Сетевой накопитель Western Digital My Book Live – довольно интересное в функциональном плане и не дорогое устройство. По этой причине и стало довольно популярно для домашнего использования. Кому интересно, без труда найдет подробное описание и отзывы владельцев в сети, я же расскажу о ремонтопригодности данного девайса. Ну, приступим.

Разбираем WD My Book Live

Вот так с ходу, разобрать My Book Live, при этом ничего не сломав, та еще задачка. Дело в том, что корпус удерживают внутренние фиксаторы-защелки, никак себя не обнаруживающие при внешнем осмотре. Корпус My Book Live собран добротно и не люфтит, потому лучше заранее знать где расположены эти самые защелки.

Чтобы не поцарапать и не ковырять корпус отвертками, лучше всего защелки открыть чем-нибудь тонким, твердым и плоским. Для вскрытия я использовал обычный широкий канцелярский нож, поочередно просовывая его в щель в указанных местах. После чего просто сдвигаем крышку.

Надеюсь, приведенные картинки и описание помогли без ущерба вскрыть устройство. Теперь перейдем к основной части, а именно "раскирпичеванию" My Book Live.

Замена жесткого диска и прошивка My Book Live

Главным недостатком WD My Book Live можно считать то, что он не имеет собственной энергонезависимой памяти и всё программное обеспечение (прошивка устройства) записана на жестком диске, где располагаются пользовательские данные. Собственно, отсюда и все проблемы со сменой жесткого диска и ремонтопригодностью устройства.

Мне принесли "окирпиченный" My Book Live, на HDD которого обнаружилось просто огромное число битых секторов. Приговор однозначный – замена жесткого диска на аналогичный – 1Tb Western Digital Caviar Green IntelliPower. В принципе, можно совершить некоторый апгрейд и установить 2Tb или 3Tb, тут уже всё зависит от вашего желания и возможностей.

Пришло время заняться непосредственно прошивкой нашего устройства. Для этого нам понадобится компьютер с Linux на борту. Я использовал загрузочную флешку с дистрибутивом Linux Mint, быстрее и удобнее. Если само слово Linux вас пугает, то наверное, дальнейшие действия следует доверить кому-то другому.

Кроме компьютера с Linux, потребуется актуальная прошивка My Book Live и скрипт debrick.sh, за который огромное спасибо dan kvelstad (страничка скрипта).

  1. Качаем с одного из зеркал или сайта WD последнюю прошивку (apnc-##########.deb). Извлекаем из .deb пакета образ диска rootfs.img (если вы еще не пользуетесь архиватором 7zip, то самое время начать) и закидываем его на флешку. Туда же кладем и скрипт debrick.sh
  2. Подключаем жесткий диск к материнской плате вашего компьютера. Рабочий диск лучше отключить, все равно загружаться будем с флешки.
  3. Загружаем Linux Mint или какой там у вас (все действия буду писать именно для Mint). Для работы скрипта необходим mdadm, устанавливаем его через менеджер пакетов. Самому скрипту желательно выставить атрибут исполняемого файла.
  4. Запускаем терминал и выясняем куда подцепился наш новый жесткий диск:

mint@mint

Видим, что /dev/sda – это наш подопечный и он девственно чист. Все приготовления закончены и осталось только выполнить команду:

debrick.sh /dev/sda rootfs.img destroy

Здесь мы выполняем скрипт debrick.sh, передав ему в качестве параметров название нашего жесткого диска – /dev/sda, прошиваемый образ – rootfs.img и указываем что все данные можно стереть и разметить диск заново – destroy.

Не забудьте правильно указать пути, как к самому скрипту, так и к прошиваемому образу. Скрипт запускается с root правами. Вот как это было у меня:

# ‘/home/mint/Desktop/debrick.sh’ /dev/sda ‘/media/mint/SONYAPE/rootfs.img’ destroy ********************** DISK **********************
script will use the following disk:
Error: /dev/sda: unrecognised disk label
is this REALLY the disk you want? [y] y
********************** IMAGE **********************
********************** IMPLEMENTATION **********************
everything is now prepared!
device: /dev/sda
image_img: /media/mint/SONYAPE/rootfs.img
destroy: true
this is the point of no return, continue? [y] y
32+0 records in
32+0 records out
33554432 bytes (34 MB) copied, 0.0387272 s, 866 MB/s
32+0 records in
32+0 records out
33554432 bytes (34 MB) copied, 0.0349998 s, 959 MB/s
32+0 records in
32+0 records out
33554432 bytes (34 MB) copied, 0.0357555 s, 938 MB/s
32+0 records in
32+0 records out
33554432 bytes (34 MB) copied, 0.0342852 s, 979 MB/s
Testing with pattern 0x00: done
Reading and comparing: done
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 528M 2576M
(parted) mkpart primary 2576M 4624M
(parted) mkpart primary 16M 528M
(parted) mkpart primary 4624M -1M
(parted) set 1 raid on
(parted) set 2 raid on
(parted) quit
Information: You may need to update /etc/fstab.
Warning: blocksize 65536 not usable on most systems.
mke2fs 1.42.5 (29-Jul-2012)
mkfs.ext4: 65536-byte blocks too big for system (max 4096)
Proceed anyway? (y,n) y
Warning: 65536-byte blocks too big for system (max 4096), forced to continue
Filesystem label=
OS type: Linux
Block size=65536 (log=6)
Fragment size=65536 (log=6)
Str > 15144960 inodes, 15191344 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=133677056
232 block groups
65528 blocks per group, 65528 fragments per group
65280 inodes per group
Superblock backups stored on blocks:
65528, 196584, 327640, 458696, 589752, 1638200, 1769256, 3210872,
5307768, 8191000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
destroying was done, would you like to continue with installation? [y] y
mdadm: size set to 1999808K
mdadm: array /dev/md0 started.
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Str > 125184 inodes, 499952 blocks
24997 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
7824 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed. (0/0/0 errdone
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
mdadm: added /dev/sda2
synchronize raid. done
copying image to disk.
3999616+0 records in
3999616+0 records out
2047803392 bytes (2.0 GB) copied, 174.816 s, 11.7 MB/s
mdadm: stopped /dev/md0
all done! device should be debricked!

Как видите, все завершилось наилучшим образом и в итоге мы имеем работающий WD My Book Live. Если остались вопросы, пишите в комментариях. В заключение, хочу поблагодарить участников форума ixbt.com за их неоценимый вклад в решении технических проблем.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

среда, 1 января 2014 г.

Восстановление WD My Book Live с сохранением данных

  1. Загружаемся с UBUNTU Live CD.
  2. После того, как Ubuntu Linux загрузился, следует настроить интернет. У меня он настроился автоматом, так как в роутере ip-адреса раздаются по DHCP.
  3. Открываем эту статью и копируем код скрипта ниже. В домашнем каталоге /home/ubuntu/ создаем новый документ (правый клик мышью, в контекстном меню: Create New Document —> Empty Document). Даем имя документу: debricker.sh, открываем и вставляем туда содержимое, которое мы скопировали. Сохраняем и закрываем. (В принципе код скрипта можете заранее приготовить на флешке и сохранить в Блокноте, но файл debricker.sh нужно создавать принципиально в Linux’е, иначе он не запустится!)

#!/bin/bash
#
# The purpose of the script is to reinstall the operating system (debrick) on
# a harddrive that has been extracted from the housing of a WD MyBook Live.
#

#help screen
if [ $# = 1 -a "$1" = "–help" ]; then
echo "
standard use of script is:
sudo ./debricker.sh the script will find out what disk to use, it will not
touch the partition tables and therefore perserves data.
it will look what the newest version of the firmware is
via internet and then search for it in current folder or
subfolders. if none is found it will download one.

possible options are:
/dev/sd? path to the disk from mybook live. if not given, the script
will figure it out on its own.
/*/*.img path to the firmware that will be written to the disk. if
not given, the script will search for and then download it.
destroy script will rewrite the partition table of disk,
this will not perserve data, must match /dev/sd?.

example
sudo ./debricker.sh /dev/sda /firmwares/mine.img destroy
"
exit 1
fi

#check that requirements are fullfilled
if [ "$( ]; then
echo -e "this script must be run as root.
"
exit 1
fi
if ! which mdadm > /dev/null; then
echo -e "this script requires the mdadm package.
"
exit 1
fi

#making sure the mountpoint is available
rootfsMount=/mnt/md0
if [ -e $ ]; then
if mountpoint -q $; then
echo "$ needs to be unmounted."
exit 1;
fi
fi
test -d "./mnt" || mkdir -p "/mnt"
test -d "$rootfsMount" || mkdir -p "$rootfsMount"

#making sure that there is no raid unit running
rootfsRa > if [ -e $rootfsRaid ]; then
echo -e "
$rootfsRaid already exists! you need to stop and remove it.
"
exit 1;
fi

#standard choices
disk=notset
image_img=notset
destroy=false

#handles the arguments and sets options
for (( arg=1; arg /dev/null; then
echo -e "
this script requires the curl package, either install it or specify image file.
"
exit 1
fi
wdc_homepage="http://websupport.wdc.com/firmware/list.asp"
wdc_latestfirmware=$(curl "$?type=AP1NC&fw=01.03.03" 2> /dev/null | awk ‘ <
if ( match($0, "upgrade file" ) != 0 ) <
split($0, http, """);
print http[2];
exit 1;
>
>’)
latestversion_simple=$(echo $wdc_latestfirmware | cut -d’-‘ -f 2)
latestversion_pattern=$(echo $latestversion_simple | sed ‘s/../&*/g;s/:$//’)
if [ "$latestversion_simple" == "" -o "$latestversion_pattern" == "" ]; then
echo -e "
could not fetch the latest version!
"
exit 1;
fi
echo "checking: $"
echo "searching: ./*/*$.img"
image_img=$(find ./ -type f -name "*$.img" -print; 2>/dev/null)

#get the latest firmware either from subdirs or internet
case `echo $image_img | wc -w` in
0) echo "searching: ./*/*$.deb"
test -d "./firmware" || mkdir -p "./firmware"
image_deb=$(find ./ -type f -name "*$.deb" -print; 2>/dev/null)
image_img="./firmware/rootfs_$latestversion_simple.img"
if ! [ `echo $image_deb | wc -w` == 1 ]; then
image_deb="./firmware/rootfs_$latestversion_simple.deb"
echo
echo "downloading: $image_deb"
read -p "confirm [y]: " -n 1
if ! [[ $REPLY =

^[Yy]$ ]]; then
exit 1
fi
echo
curl $wdc_latestfirmware > $image_deb
if [ $? != 0 ]; then
echo -e "
downloading encountered problems.
"
exit 1;
fi
fi
echo
echo "will extract: $image_deb"
read -p "confirm [y]: " -n 1
echo
if ! [[ $REPLY =

^[Yy]$ ]]; then
exit 1
fi
echo "extracting: ./firmware/rootfs_$.img"
ar p $image_deb data.tar.lzma | unlzma | tar -x -C ./firmware
if [ $? != 0 ]; then
echo -e "
extraction encountered problems.
"
exit 1;
fi
mv ./firmware/CacheVolume/upgrade/rootfs.img ./firmware/rootfs_$.img
rm -rf ./firmware/CacheVolume;;
1) echo "found: $image_img";;
*) echo -e "
multiple image_img files was found."
exit 1
esac
else
if [ ! -e $image_img ]; then
echo "$image_img does not exist."
exit 1;
fi
fi

#construct the swap program
echo "
#include
#include
#include
#include
#include

#define MD_RESERVED_BYTES (64 * 1024)
#define MD_RESERVED_SECTORS (MD_RESERVED_BYTES / 512)

#define MD_NEW_SIZE_SECTORS(x) ((x &

(MD_RESERVED_SECTORS – 1)) – MD_RESERVED_SECTORS)

main(int argc, char *argv[])
<
int fd, i;
unsigned long size;
unsigned long long offset;
char super[4096];
if (argc != 2) <
fprintf(stderr, "Usage: swap_super device\n");
exit(1);
>
fd = open(argv[1], O_RDWR);
if (fd ./swap.c
gcc swap.c -o swap
rm swap.c

echo -e "
everything is now prepared!
device: $disk
image_img: $image_img
destroy: $destroy
"

read -p "this is the point of no return, continue? [y] " -n 1
echo
if ! [[ $REPLY =

#rewrite the partition table
if [ $destroy = true ]; then
backgroundPattern="$"

dd if=/dev/zero of=$diskRoot1 bs=1M count=32
dd if=/dev/zero of=$diskRoot2 bs=1M count=32
dd if=/dev/zero of=$diskSwap bs=1M count=32
dd if=/dev/zero of=$diskData bs=1M count=32
badblocks -swf -b 1048576 -t $ $ 16 0

parted $disk –align optimal $rootfsMount/etc/nas/service_startup/ssh sync
sync
sync
umount $rootfsMount
rmdir $rootfsMount
mdadm –stop $rootfsRaid
./swap $diskRoot1
./swap $diskRoot2
rm ./swap

echo
echo "all done! device should be debricked!"
echo

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector