Rendszer áttelepítése másik vinyóra

Fórumok

Át szeretném telepíteni a hda-ról a teljes rendszert mbr-estül, rendszerpartícióstul egy másik, nagyobb vinyóra.

A nagyobb vinyó most /dev/hdb-ként van felapplikálva; már létrehoztam rajta ugyanazokat a partíciókat (csak nagyobb méretben), amik a hda-n is megvannak, és átmásoltam a partíciókon lévő fájlokat is a cpio-val.

Most jönne az mbr (grub) áttelepítése, amihez lenne pár kérdésem:

1. Lehet ezt ezzel az egyszerűnek tűnő paranccsal csinálni?:
dd if=/dev/hda of=/dev/hdb bs=446 count=1

vagy ez nem működne, mert a hdb-n a partíciók nem ugyanazon a pozíción vannak mint a hda-n? (Plusz a hdb1-et és a hdb2-t is felcseréltem, de ezt a menu.lst-ben és az fstab-ban átvezettem, úgyhogy gondolom ez nem okozna problémát)

2. Ha a fenti nem menne, van valami más megoldás, amivel még az előtt rá lehetne a grub-ot tenni a hdb-re, hogy a vinyót átpakolnám a hda helyére?
Valahogy nem igazán akar összejönni ez :-(

Igy néznek ki most a partícióim:

Disk /dev/hda: 20.4 GB, 20490559488 bytes
255 heads, 63 sectors/track, 2491 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 1275 10241406 c W95 FAT32 (LBA)
/dev/hda2 * 1276 1288 104422+ 83 Linux
/dev/hda3 1289 1706 3357585 83 Linux
/dev/hda4 1707 2491 6305512+ f W95 Ext'd (LBA)
/dev/hda5 1707 1770 514048+ 82 Linux swap / Solaris
/dev/hda6 1771 1821 409626 83 Linux
/dev/hda7 1822 1923 819283+ 83 Linux
/dev/hda8 1924 2025 819283+ 83 Linux
/dev/hda9 2026 2491 3743113+ 83 Linux

Disk /dev/hdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 * 1 25 200781 83 Linux
/dev/hdb2 26 2550 20282062+ c W95 FAT32 (LBA)
/dev/hdb3 2551 3412 6924015 83 Linux
/dev/hdb4 3413 4865 11671222+ f W95 Ext'd (LBA)
/dev/hdb5 3413 3540 1028128+ 82 Linux swap / Solaris
/dev/hdb6 3541 3642 819283+ 83 Linux
/dev/hdb7 3643 3846 1638598+ 83 Linux
/dev/hdb8 3847 4050 1638598+ 83 Linux
/dev/hdb9 4051 4865 6546456 83 Linux

Disk /dev/hdc: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 1 9727 78132096 c W95 FAT32 (LBA)
/dev/hdc2 9728 19929 81947565 83 Linux

Vagyis három vinyó van per pillanat bent, de az a fura, hogy a grub mintha csak kettőt látna belőle, és azok partíciót is mintha összekeverné:

grub> root (hd1,0)
Filesystem type is fat, partition type 0xc

A hd(1,0) az nem a hdb1 lenne? Mert ha igen, akkor az az fdisk szerint nem fat, hanem linux (reiser)...

grub> root (hd2,0)
Error 21: Selected disk does not exist

És ez nem a /dev/hdc1? Mert ha igen, akkor az meg fat kellene hogy legyen...

grub> root (hd3,0)
Error 21: Selected disk does not exist

Ez - gondolom - a hdd1, ami valóban nem létezik, úgyhogy ez rendben lenne.

De akkor is: a grub szerint csak két vinyóm van (a hd(0,0) és hd(1,0) partíciókat találta meg), ezzel szemben valójában 3 vinyóm van: hda, hdb és hdc.

Mi az oka, hogy a grub látszólag nem találja mind a 3 vinyót, és fat-ot lát ott, ahol reiser van?

Benéztem valamit?

Hozzászólások

root (hd0,0) ??? asszem grub 0-tól kezd számozni, de ez csak egy pillanatszerű ötlet...

Igen, de én most a hdb-re szeretném a grub-ot rátelepíteni, ami pedig most még a hd(1) lenne.
Aztán pedig amikor már rajta van grub bootloader, egyszerűen áttenném a vinyót hda-nak, és felbootolnám róla az új rendszert (a mostani hda-t meg kivenném).
Ha ez így menne, akkor nem kellene boot cd-t felhajtanom, hogy a grub-ot utólag telepíthessem az új rendszer vinyóra.

---
Mondjon le!

" akkor nem kellene boot cd-t felhajtanom, hogy a grub-ot utólag telepíthessem az új rendszer vinyóra."

A másolat vinyót tedd
" áttenném a vinyót hda-nak,"
ide,
majd egy livecd-t alkalmazva (chroot) telepítsd a grubot.
Asszem ez a legegyszerűbb eljárás.

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

De ez átmásolja az mbr-ből a partíciós táblát is, nekem pedig az új vinyón nem ugyanazon a poziciókon vannak a particióim, mint a régin voltak.

Ezért írtam az első hozzászólásomban ezt a parancsot, mert elvileg ez csak a bootloader byte-jait másolja, a partíciós táblát nem bántja:

dd if=/dev/hda of=/dev/hdb bs=446 count=1

Persze, ha az mbr partíciós táblájában nincsenek más partíciók kezdetére mutató adatok, akkor tényleg kicserélhetném az egész mbr-t...
De tényleg nincsenek?

---
Mondjon le!

Nalam lilo van es az ilyeneket igy csinalom:
- Uj vinyo berak hda-nak
- Regi vinyo berak mashova, csak lehessen rola bootolni.
- Biosban beallitom hogy bootoljon a regi vinyorol
Mivel a regi vinyo nem hda akkor is a hda-n fog elindulni a rendszer mert minden oda hivatkozik.
- Utana meg be szoktam irni hogy lilo es kesz

Valoszinuleg ez igy a grubnal is mukodni fog.

ha a jelenlegi hdb lesz a hda, akkor:

grub
grub> device (hd0) /dev/hdb
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Én

cp -dpvR <miket> <hova>

paranccsal szoktam a dolgokat márolni ilyen esetben, de ízlések és pofonok...

Talán ez így menne:

# mount <új_root_partíció> /mnt/temp
# grub-install --root-directory /mnt/temp/ /dev/hdb

cat , majd átméretezés egy livecdvel

1. Lehet ezt ezzel az egyszerűnek tűnő paranccsal csinálni?:
dd if=/dev/hda of=/dev/hdb bs=446 count=1

vagy ez nem működne, mert a hdb-n a partíciók nem ugyanazon a pozíción vannak mint a hda-n?

Nem a partíciós táblával lenne gond, hanem azzal, hogy az MBR-be beleégeti a grub a stage2 első pár blokkjának fizikai pozícióját.

2. Ha a fenti nem menne, van valami más megoldás, amivel még az előtt rá lehetne a grub-ot tenni a hdb-re, hogy a vinyót átpakolnám a hda helyére?
Valahogy nem igazán akar összejönni ez :-(

Pedig sima ügy, elvileg egy "grub-install /dev/hdb" jó kell hogy legyen. Annyit nézz meg, hogy a /boot/grub/device.map fájlban meg legyen említve a /dev/hdb. Tök mindegy hogy hd0 vagy hd1 vagy hd2, csak legyen egyértelmű (ne ütközzön másik eszközzel). A pontos érték akkor számítana, ha olyat trükköznél, hogy a grub az egyik vinyóról indul, de egy másik vinyón van a /boot partíció. Itt most nem erről van szó. A grub-install lefutása után ellenőrizd:
dd if=/dev/hdb bs=1 count=1 skip=64 | od -t x1
Ez a hdb 64. (azaz 0x40-edik, 0-tól számozva) byte-ját írja ki az első sor jobb oszlopába. Ez a te esetedben "ff" kell hogy legyen, ez jelenti azt, hogy ugyanarról a vinyóról folytatja a betöltést, mint amelyikről ő indult el. Ha olyat trükköznél, hogy maga az MBR és a /boot másik partíción van, akkor itt 80, 81, 82 stb... jelenne meg (hd0, hd1, hd2 stb.-nek megfelelően).

De akkor is: a grub szerint csak két vinyóm van (a hd(0,0) és hd(1,0) partíciókat találta meg), ezzel szemben valójában 3 vinyóm van: hda, hdb és hdc.

Mi az oka, hogy a grub látszólag nem találja mind a 3 vinyót, és fat-ot lát ott, ahol reiser van?

A hd0, hd1, hd2 stb. és a /dev/hda, /dev/hdb, /dev/sda stb. közti összerendelést a device.map fájl adja meg, az van másképp beállítva, mint ahogy te számítasz rá.

Bocsi, a sima grub-install nem jó, mert az ugye a mostani /boot alá pakolja a grub további részét, neked meg az kéne, hogy az is hdb-re kerüljön. Csatold be valahova, például /mnt alá a hdbX-et, hogy legyen /mnt/boot könyvtár, ami majdan a vinyóáthelyezés után a /boot lesz. Ezt követően grub-install --root-directory=/mnt /dev/hdb
Ha esetleg a /dev/hdb-t nem enné meg, akkor hd0 vagy hd1 vagy amelyikhez a /dev/hdb-t rendelted az /mnt alatti device.map-ben.