Portál AbcLinuxu, 5. května 2025 05:52

Dotaz: Přestěhování Linuxu na jiný disk

Jardík avatar 21.11.2005 20:03 Jardík | skóre: 40 | blog: jarda_bloguje
Přestěhování Linuxu na jiný disk
Přečteno: 1577×
Odpovědět | Admin
Po koupě nového většího 80GB disku jsem se rozhodl, že na něj přesunu svůj Arch linux. Nabootoval jsem Live CD s distribucí Slax, programem cfdisk jsem vytvořil dva oddíly. Na prvním oddílu jsem programem mkswap vytvořil swap oddíl a na druhém ext3 filesystém skriptem mkfs.ext3. Poté jsem přimountoval ext3 oddíl (logický) do adresáře /mnt/hdb5. Oddíl na starším disku do /mnt/hda6. Příkazem cd jsem přešel do adresáře hda6 a spustil příkaz "cp -r * /mnt/hdb5". Po dokončení kopírování jsem upravil fstab v adresáři /mnt/hdb5/etc a také menu.lst v adresáři /mnt/hdb5/boot/grub. Potom jsem přešel do adresáře /mnt a spustil příkaz "chroot /mnt/hdb5 /bin/bash". Teď jsem chtěl přeinstalovat grub příkazem "grub-install /dev/hdb5". Teď nastal problém - /dev/hdb5 prý neexistuje. Tak jsem restartoval systém a v bootovací nabídce starého grubu jsem stisknul "c". Napsal postupně příkazy "root (hd1,4)", "kernel /boot/vmlinuz26 ro root=/dev/hdb5 devfs=nomount vga=792" a "boot". Tím mi nabootoval arch z nového disku. Spustil jsem příkaz "grub-install /dev/hdb5". Ale nastala chyba. Psalo se něco o /dev/hdb5 a BIOSU a vůbec si s tím nevím rady. BIOS disk detekuje správně a je v nejnovější verzi. Ve windows funguje disk bez problémů.
Věřím v jednoho Boha.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 21.11.2005 20:29 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tím, že vlezete do chrootu se vám device nodes jako je /dev/hdb5 samy nevytvoří, musíte si je vytvořit ručně podle toho, jak je to v /dev toho LiveCD.
21.11.2005 20:32 David Jež | skóre: 42 | blog: -djz | Brno
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravím, on je problém ten, že BIOS vždy zajistí bootování z ,,prvního`` disku, bootloader si myslí, že je na prvním disku a jede dál, kvůli kompatibilitě. Tedy pokud bootuješ např. z disku (hd1), BIOS z něj nejprv z něj udělá disk (hd0) (resp. 0x81 a 0x80). Pokud tedy instaluješ grub-install /dev/hdb tak to není dobrý nápad, protože pak bude hledat další sektory na jiném disku a nebude to fungovat. Pro tebe štěstí, že ten grub-install ani neprojel :-). Osobně grub-install nepoužívám, doporučuji ti postup pustit ve svém systému (třeba chrootnutého) grub --device-map=/dev/null a v něm pak napíšeš např.:
device (hd0) /dev/hdb
root (hd0, 4)
setup (hd0, 4)
Pak už ti to pojede. BTW proč nechceš grub do MBR?
-djz
"Yield to temptation; it may not pass your way again." -- R. A. Heinlein
Jardík avatar 21.11.2005 20:41 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Já sem to splet v zápisu. Samozřejmě sem spouštěl grub-install /dev/hda
Věřím v jednoho Boha.
21.11.2005 20:41 Jaroslav Aster
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, cp -r * neni dobry napad. Prijdes tim o informace o uzivatelich a skupinach. Postup by mohl byt nasledujici:
1, pripoj si druhy disk do /mnt/hdb5
2, bez do rootu cd /
3, zadej prikaz tar zcvf /mnt/hdb5/system.tar.gz _zde_prijdou_vsechny_adresare_krome_proc_sys_mnt_
4, bez do adresare /mnt/hdb5 a zadej prikaz tar zxvf system.tar.gz
5, smaz system.tar.gz
6, vytvor adresare mnt sys proc
7, smaz soubor /mnt/hdb5/boot/grup/device.map
8, zadej prikaz grub grub-install --root=/mnt/hdb5 --no-floppy /dev/hdb
Snad jsem na neco nezapomel :-).
21.11.2005 21:38 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Místo bodů 3 a 4 se obvykle používá
  tar -cf - ... | tar -xf - -C /mnt/hdb5
Ušetříte tím místo na zbytečný mezisoubor a strojový čas na zbytečnou kompresi a dekompresi. Případně je možné použít
  star -copy -no-fsync ... /mnt/hdb5
21.11.2005 22:12 Jaroslav Aster
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Diky za tip. Ja se to naucil delat pres mezisoubor, protoze jsem potrebovat zkopirovat stroj, ktery byl odemne daleko. Clovek se pak nauci jedno reseni a nehleda jine :-).
23.11.2005 14:29 barney
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
osobne pouzivam nasledovne ...

find / -mount | cpio -pdamu /mnt/disk

na niektorych typoch komercnych unixov bolo treba pouzivat prepinac -xfs
22.11.2005 09:34 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Misto tar | tar , ktoré zbytočne vec komplikujú, či miesto star, ktoré nie je všade, môžeš poučiť "cpio -pdm ...", ktoré je presne na to určené a všade je.
22.11.2005 11:02 msk
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Mozem sa opytat, z akeho dovodu nepouzit cp -a namiesto tychto tarovych prisernosti?
BTW: Rozumne sa da prekopirovat particia aj pomocou partimage.
22.11.2005 18:47 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Asi takto: není to žádná příšernost, je to celkem normální řešení, které není o nic horší než pomocí cp. Každý má své oblíbené nástroje, kterým dává přednost. A pokud byste chtěl vědět, proč je to v mém případě tar, odpověď je celkem jednoduchá: ne všude je GNU cp a ani GNU cp neumí přepínač -a odjakživa…
23.11.2005 14:33 barney
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk

hmm ... skusme nasledovny priklad:

mam particie:
 /dev/hda1 (40G)  ... /
 /dev/hdb1 (200G) ... /home
 /dev/hdc1 (80G)  ... /mnt/novy_disk

akakolvek metoda, ktora neumozni vynechat /home a /mnt/novy_disk je nepouzitelna.
25.11.2005 07:34 Martin Lebeda | skóre: 22 | blog: Martinuv_blog | Plzeň
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk

Výňatek z manuálových stránek tar(1):

       -l, --one-file-system
              stay in local file system when creating an archive
nebo rsync(1):
        -x, --one-file-system       don't cross filesystem boundaries
nebo cp(1):
       -x, --one-file-system
              stay on this file system
nebo pro ty co používají FIND(1L):
       -xdev  Don't descend directories on other filesystems.
O dump/restore nemá cenu hovořit, tam to jaksi jinak ani nejde... Mojí osobní volbou je většinou tar ;-).
21.11.2005 22:20 #Tom
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Osvědčilo se mi taky něco jako cp -avx /původní_strom/. /nový_strom. O neporušení atributů (někdy i včetně ACL) se postará -a, omezení na jeden souborový systém zařídí -x a pěkný výpis udělá -v.
21.11.2005 22:45 Jaroslav Aster
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Hmm, asi bych si mel znova procist manove stranky. Man cp jsem neotevrel uz hodne dlouho. Diky za tipy.
22.11.2005 01:57 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Taky přidám svojí trošku do mlýna:

rsync -avx --exclude=/mnt / /mnt/hdb5 nahradí body 2 - 5
Quando omni flunkus moritati
21.11.2005 22:42 lubo
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bez live CD
1. Nový HDD do PC ako hdb
2. Boot zo stareho HDD 
3. mount /dev/hdb5 /mnt/hdb5
4. cd /mnt/hdb5
5. dump -0 -f - / | restore -r -f -
6. uprava fstab a lilo.conf prip grub
7. halt
8. Nový HDD ako hda
9. rescue start potvrdenie lila, grubu
10. reboot
Bod 5 skopiruje rootovsku particiu do aktuálneho adresára. Ďalšie partície dump -0 -f - /usr | restore -r -f - atď.
22.11.2005 03:16 zacatecnik
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Odpovědět | | Sbalit | Link | Blokovat | Admin
pomoci dd by to neslo?? dd if=/starydisk of=/novydisk a nakonec zapojit novy misto stareho........
22.11.2005 08:34 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
To by musely ty disky být naprosto identické. A pozor, ani disky od téhož výrobce se stejným typovým označením nejsou obvykle zcela identické. Takže tohle bych raději nezkoušel.
22.11.2005 16:49 #Tom
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Pokud se to udělá ne s disky, ale diskovými oddíly tak, že cílový bude nejméně tak velký jako zdrojový, tak to půjde.
23.11.2005 01:09 matej
Rozbalit Rozbalit vše Re: Přestěhování Linuxu na jiný disk
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zhodou okolností som práve robil to isté a takisto mám Arch a použil som pri tom Slack ;-)


Takže, spravil som to takto:

0) zapojil som novú HW konfiguráciu + starý systémový disk

1) nainštaloval som si na nový disk Arch z CD (pritom som si rozdelil disk na partície a naformátoval); minimálna inštalácia; išlo mi iba o Grub, ktorý sa mi nejako nepodarilo predtým rozbehať

2) nabootoval som Slack - nový_disk=/mnt/hdb3 + /mnt/hdb1 , starý_disk=/mnt/hdd3 + /mnt/hdd1

3) vymazal som kompletne nový disk, aby bol čistý od starých neúspešných pokusov

4) rsync -avx --exclude=/mnt/hdb3/mnt/ /mnt/hdd3/ /mnt/hdb3/

5) chroot /mnt/hdb3/ /bin/bash

6)[chroot] ./etc/makedevs /dev/ all

7)[chroot] upravil som /boot/grub/menu.lst

8)[chroot] upravil som /etc/fstab

9) reboot

Momentálne už píšem z nového (vlastne starého ;-) ) systému, zatial nepozorujem žiadnu chybu, takže sa to podarilo :-) .

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.