Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: GParted не видит разделов диска (или смена номера партиции корня) решение:  (Прочитано 4260 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexwf

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Решил поведать о засаде и решении, может кому пригодится.


Вводная часть

Ноут, Asus L5800C, winXP, kubuntu 7.10. Почти 2 года назад полетел винт, пришлось брать что было в магазине: IDE 160Гб, BIOS его не понимал, только до 80Гб. В результате загрузчики типа Grub, LILO не могут загрузить ОС больше чем с 1024 цилиндра (error 18).

Выкрутился. Выделил партицию под /boot 100Мб в начале, за ней Windows (ей требуется основная, первая, активная), а всё остальное в расширенном разделе: корень \ ext3 и раздел данных fat32 (надо). Двигал "шашки", кажется, Акронисом, что имелся под рукой. В результате загрузилась и Windows (лицензия, наследие прошлой работы) и линукс (нынешняя работа). Два года почти проработал, потом глянул на fdisk -l и волосы дыбом встали. GParted разбивки винта в упор не видел, QTParted крашился.

Старая таблица партиций

wolf@alex02:~$ sudo su
[sudo] password for wolf:
root@alex02:/home/wolf# fdisk -l

Диск /dev/sda: 160.0 ГБ, 160041885696 байт
255 heads, 63 sectors/track, 19457 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x15a215a1

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *          14        1972    15735667+   c  W95 FAT32 (LBA)
/dev/sda2            1973       19457   140448262+   f  W95 расшир. (LBA)
/dev/sda3               1          13      104391   83  Linux
/dev/sda4            1973        5766    30475273+  83  Linux
/dev/sda5            5889       19457   108992961    b  W95 FAT32
/dev/sda6            5767        5888      979933+  82  Linux своп / Solaris

Пункты таблицы разделов расположены не в дисковом порядке


Каким-то каком основная партиция под номером 4 (sda4) оказалась внутри расширенной (sda2)! Глюк редкий, но злой. Непорядок. Напомню: основные это 1,2,3,4 расширенные 5 и дальше...


Решение

Есть 2-й ПК, сеть, самба и мамба, винт достаточной ёмкости, время. Взял Clonezilla (удобный аналог NortonGhost, Acronis TrueImage и т.п.) LiveCD PuppyRus-1.30-jeans (рекомендую).

1. Clonezilla снял образы всех рабочих партиций sda1-sda3-sda4, включая MBR, кроме sda6 (swap) и sda5 данных. Своп сохранять не нужно, а данные большие, проще слить напрямую через сеть. Образы img положил на sda5, пусть ждут часа.

2. Загрузил PuppyRus. На всякий пожарный снял MBR диска:
dd if=/dev/hdс of=mbr.bak bs=512 count=1

(восстанавливать: dd if=mbr.bak of=/dev/hdс  полное восстановление, с потерей таблицы партиций, сделанных после бэкапа, либо: dd if=/pathto/mbr.bak of=/dev/hdс bs=446 count=1 в этом случае новая таблица партиций останется нетронутой.)

Слил все данные с sda5 по сети на винт ПК, включая резервные img. Проверил - ничего не забыл? Т.о. на 2-м ПК полностью сохранённые 2 ОС и данные с ноута.

Запросил таблицу fdisk -l (понадобятся для восстановления точной копии), а также данные разделов GParted - чтобы не бодаться долго. В простом цифровом виде - размеры. В Пуппи винт видится как hdc (!), что не важно для процесса. Сохранил на флешку (!) цифири и MBR.

4. Прибил все разделы на винте. Выпил чаю :-)

5. Ребут. Загрузился с загрузочной дискеты w98 (или тому подобное), сделал fdisk /mbr (внимание, DOS утилита и команда) - создал новый master boot record.

5. Вернулся в PuppyRus. GParted и fdisk (надо менять id partition на первоначальные) восстановил прежнюю геометрию винта, проверил размеры - начало и конец, блоки. Важно! Все разделы, которые могли быть созданы под старыми номерами - создал. hda1 должен иметь флаг загружаемый - иначе Windows упрётся. Соответственно, получилась та же разметка, но hda5 стал hda7, а hda4 стал hda5. Теперь таблица в норме.

Новая таблица партиций

wolf@alex02:~$ sudo su
[sudo] password for wolf:
root@alex02:/home/wolf# fdisk -l

Диск /dev/sda: 160.0 ГБ, 160041885696 байт
255 heads, 63 sectors/track, 19457 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x15a215a1

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *          14        1972    15735667+   c  W95 FAT32 (LBA)
/dev/sda2            1973       19457   140448262+   f  W95 расшир. (LBA)
/dev/sda3               1          13      104391   83  Linux
/dev/sda5            1973        5766    30475273+  83  Linux
/dev/sda6            5767        5888      979933+  82  Linux своп / Solaris
/dev/sda7            5889       19457   108992961    b  W95 FAT32

Пункты таблицы разделов расположены не в дисковом порядке


6. Залил по сети данные обратно на sda7.

7. Clonezilla восстановил рабочие разделы соотв:

Старый в Новый
sda1 sda1
sda3 sda3
sda4 sda5
MBR MBR

8. Ребут. Т.к. загрузочный раздел линукса sda3 в начале диска имеет тот же номер и размер, что и прошлый, Grub остался на месте и ядро тоже. Появилось приглашение Груба (текстовый режим). Загрузил винХП - ок. Линукс пока грузить нельзя, у него сменился номер раздела корня файловой системы с sda4 на sda5.

Теперь нужно подменить все ссылки на старый номер разделов новым.
а) sda5 -> sda7
б) sda4 -> sda5
Именно в таком порядке, начиная со старшего номера, чтобы избежать коллизии при последующей замене.

9. Вернулся в PuppyRus. Примонтировал раздел с корнем Кубунты 7.10, запустил mc, нажал поиск файла, в содержании которого есть "sda5", КUbuntu опознаёт диск как sda.

Итак, меняю sda5 на sda7. Поиск файлов - вывалился список, куча файлов. Логи, кэши и картинки с тумбанайлами не интересны, их можно удалить, система создаст заново. Я же хочу, чтобы при первой загрузке линукса всё стало рабочим, как было. Прочесал файлы конфигурации, хмл и проч (в mc есть F4 встроенный редактор, F4 замена, F7 поиск, осторожно - совпадения типа "poesda56" не интересуют, Esc - записать).

Ту же операцию проделал с подменой sda4 на sda5. Особое внимание файлам в каталоге
/etc
 blkid.tab
 blkid.tab.old
 fstab
 mtab

В fstab UUID старого раздела данных (sda5) поменял на новый (vol_id -u /dev/sda7).

Удалил битые симлинки на устройство sda5 в /home/user/.Desktop, проще создать из КДЕ заново.

Удалил каталог /mount/sda5, создал /mount/sda7 - права 40770, владелец root и группа plugdev.

10. Ребут и... Рабочая КUbuntu 7.10 с корнем в новой партиции.

ЗЫ: В общем, оказалось не страшно.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.