*Drive*- Здесь рулят padonki

*Drive* - Counter Strike Source
Текущее время: 28 мар 2024, 22:31

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 13 окт 2008, 00:04 
Не в сети
Аватар пользователя

Зарегистрирован: 15 ноя 2006, 20:41
Сообщений: 58
Откуда: msk
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здесь описан реальный опыт по переносу данных на различающиеся диски, используя только консоль и утилиты которые доступны в single mode (без использования CD-ROM).

Для примера рассмотрим перенос данных для дисков:
Maxtor Diamond Max-10 160Gb – далее будем называть просто Maxtor
Western Digital WD1600 160Gb – далее будем называть просто WD

Маркировка данных дисков говорит нам что объём дисков одинаков, но это не так.
Это связанно с тем что некоторые производители считаю что 1Мб = 100000000 байт, а не 1073741824 байт как принято.
Matrox оказался честнее с нами поэтому его диск больше диска Western Digital

Итак, исходные данные:
1) Имеется платформа с битым диском Maxtor которая может загрузиться в single mode.
(это важно, т.к. если диск настолько битый что с него невозможно загрузиться то перенос системы теряет смысл, в отличии от переноса просто важных данных с него, что намного легче)
2) Имеется новый диск WD (который как мы знаем немного меньше в объёме)

Задание:
Перенести систему с битого диска Maxtor на новый диск WD

Решение:
Подключим новый диск и загрузимся в single mode с умирающего диска.

Перемонтируемся в rw режим
mount -uw /

Смотрим как выглядят диски с точки зрения системы
ls /dev
...
ad4
ad4s1
ad4s1a
ad4s1b
ad4s1c
ad4s1d
ad4s1e
ad4s1f
ad6
...

Видим что
ad4 – системный диск Matrox
ad6 – новый диск WD (без слайса и разделов)
Названия дисков могут отличаться. Для SATA это “ad”, для SCSI это “da” и т.д. Это надо учитывать.

Небольшая справка по БСД разметке:
ad4 – означает диск на 4 порту контроллера
ad4s1 – указывает на 1 слайс диска (всего может быть 4 слайса, слайс можно перевести как «отрезок»)
ad4s1a – всегда указывает на корневой «/» раздел на слайсе, т.е. буква «а» зарезервирована за корнем.
ad4s1b – всегда swap раздел
ad4s1c – зарезервированно для описания всего слайса в целом, т.е. контейнер для остальных разделов (требуется когда используестся разбивка без режима совместимости с BIOS, и в MBR сразу прописывается BSD таблица разделов. т.к. слайсов в этом режиме не создаётся то ad4s1c служит контейнером-псевдослайсом)
ad4s1d,e,f – обычные разделы /usr /home /var и т.д.

Запомним эту инфу, т.к. ошибка будет стоить очень дорого.

Создадим один большой слайс на НОВОМ диске WD
fdisk -I /dev/ad6

Если нужно создать несолько слайсов (наши хостинговые DS используют всегда 2 слайса) то поступаем так, команда
fdisk /dev/ad4
выведет информацию о слайсах диска и их размерах, надо запомнить размер первого слайса. Потом запускаем интерактивный режим разбивки нового диска командой
fdisk -i /dev/ad6
и следуем инструкциям.

Дальнейшее описание будет на примере работы с одним слайсом, если на диске несколько слайсов то применять это для каждого слайса.

После разбивки диска на слайсы продолжим.
Сохраним таблицу разделов первого слайса битого диска Maxtor в файл. Для других слайсов поступаем так же, только файл назовите по другому.
disklabel ad4s1 > /tmp/lab.txt

Открываем файл на редактирование (используем древнейший редактор *NIX систем, потому что vi, edit и прочее барахло не работают в single mode, т.к. используют базу терминалов которая не подмонтирована, мы рассматриваем худший случай т.к. возможно у вас не будет возможности смонтировать нужный раздел из за фатальных поврждений)
ed /tmp/lab.txt

Просмотрим все строки в буфере редактора и сразу пронумеруем их (Здесь [ETNER] – нажатие клавиши Enter на клавиатуре)
1,$n [ENTER]
.............................................................................
1 # /dev/ad4s1:
2 8 partitions:
3 # size offset fstype [fsize bsize bps/cpg]
4 a: 4194304 0 4.2BSD 2048 16384 28552
5 b: 4194304 4194304 swap
6 c: 156248127 0 unused 0 0 # “raw” part, don't edit
7 d: 4194304 8388608 4.2BSD 2048 16384 28552
8 e: 20971520 12582912 4.2BSD 2048 16384 28552
9 f: 41943040 33554432 4.2BSD 2048 16384 28552
......................................................................................................

Нам нужно подправить размеры раздела f и c, так как их size превышает size нового диска. (если ещё не понятно почему правим только эти разделы, то надо вернуться в начало и читать до полного усвоения материала)

Делается это так:
6c [ENTER]
c: * 0 unused [ENTER]
. [ENTER]

9c [ENTER]
f: * * 4.2BSD [ENTER]
. [ENTER]

Смотрим результат
1,$n [ENTER]
..........................................................................
1 # /dev/ad0s1:
2 8 partitions:
3 # size offset fstype [fsize bsize bps/cpg]
4 a: 4194304 0 4.2BSD 2048 16384 28552
5 b: 4194304 4194304 swap
6 c: * 0 unused
7 d: 4194304 8388608 4.2BSD 2048 16384 28552
8 e: 20971520 12582912 4.2BSD 2048 16384 28552
9 f: * * 4.2BSD
...............................................................................

Сохраняем файл
w [ENTER]

Выходим
q [ENTER]

Запишем подправленную таблицу разделов на новый диск WD и установим загрузчик
disklabel -R -B /dev/ad6s1 /tmp/lab.txt

Смотрим появились ли новые разделы в /dev
ls /dev
...
ad6
ad6s1
ad6s1a
ad6s1b
ad6s1c
ad6s1d
ad6s1e
ad6s1f
...

Ок, появились, теперь создадим файловые системы на них.
newfs -U -O2 -n /dev/ad6s1a
newfs -U -O2 -n /dev/ad6s1d
newfs -U -O2 -n /dev/ad6s1e
newfs -U -O2 -n /dev/ad6s1f

Создадим точки монтирования для наших новых разделов
mkdir /mnt/a
mkdir /mnt/d
mkdir /mnt/e
mkdir /mnt/f

Смонтируем их
mount /dev/ad6s1a /mnt/a
mount /dev/ad6s1d /mnt/d
mount /dev/ad6s1e /mnt/e
mount /dev/ad6s1f /mnt/f

Перенесём данные
cd /mnt/a
dump -0f – /dev/ad4s1a | restore -rf -
cd /mnt/d
dump -0f – /dev/ad4s1d | restore -rf -
cd /mnt/e
dump -0f – /dev/ad4s1e | restore -rf -
cd /mnt/f
dump -0f – /dev/ad4s1f | restore -rf -

Это всё, выключаем, меняем диск, грузимся и лечим ФС, т.к. переносили мы заведомо битые данные.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти: