Przeniesienie systemów na nowy dysk

Wszystko związane z jądrem systemowym, sterownikami, sprzętem itp.
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

[+]Przeniesienie systemów na nowy dysk

Post autor: DaVidoSS »

Cześć.
Przymierzam się do kompletnego żonglowania dyskami. Powodem jest padający dysk.
Trzeba wymienić dysk SATA 250 Gb na jego nowy odpowiednik i przy okazji chciałbym na niego przenieść Windows XP i dwa Debiany z innego dysku (IDE), bez ponownej ich instalacji.


Oto moja obecna konfiguracja:

Kod: Zaznacz cały

/dev/sdb1: LABEL="debian_boot" UUID="9d5387e9-6ddb-4487-8a21-dc00130b677d" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb2: LABEL="aptosid_boot" UUID="8bbe6efb-90c3-4cb9-b8a1-1edaa582de5c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb5: LABEL="debian_system" UUID="7cb087b4-8a7c-4396-9792-ed0534362b57" TYPE="ext4" 
/dev/sdb6: LABEL="debian_home" UUID="8fc19c66-a925-41da-82c6-4b0e37e6a6c2" TYPE="ext4" 
/dev/sdb7: LABEL="aptosid_system" UUID="40b50678-3ed9-4866-93c8-12fb238e4d6e" TYPE="ext4" 
/dev/sdb8: LABEL="aptosid_home" UUID="31424034-8b73-44c9-a1ec-b5787c93d7f0" TYPE="ext4" 
/dev/sdb9: LABEL="windows_d" UUID="04BA-04BC" TYPE="vfat" 
/dev/sda1: LABEL="windows_c" UUID="9A28270C2826E74B" TYPE="ntfs" 
/dev/sda5: LABEL="wdc_second" UUID="E2C0ACE3C0ACBF63" TYPE="ntfs"
Do przeniesienia partycje, które na nowym dysku powinny zaistnieć w kolejności.:

Kod: Zaznacz cały

"windows_c"        jako pierwsza partycja podstawowa
"debian_system"    jako pierwszy dysk logiczny partycji rozszerzonej
"debian_home"      jako drugi dysk logiczny partycji rozszerzonej
"aptosid_system"   jako trzeci dysk logiczny partycji rozszerzonej
"aptosid_home"     jako czwarty dysk logiczny partycji rozszerzonej
/dev/sdb10 -swap   jako piąty dysk logiczny partycji rozszerzonej
/dev/sdb11 -swap   jako szósty dysk logiczny partycji rozszerzonej

Kod: Zaznacz cały

Dysk /dev/sda: 250.1 GB, bajtów: 250059350016
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 30401
Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0xb7c8d8e8

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sda1   *           1        6643    53359866    7  HPFS/NTFS
/dev/sda2            6644       30401   190836135    f  W95 Rozsz. (LBA)
/dev/sda5            6644       30401   190836103+   7  HPFS/NTFS

Dysk /dev/sdb: 500.1 GB, bajtów: 500107862016
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 60801
Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0x0001bbb6

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sdb1   *           1          25      194560   83  Linux
Partycja 1 nie kończy się na granicy cylindra.
/dev/sdb2              25          49      195584   83  Linux
Partycja 2 nie kończy się na granicy cylindra.
/dev/sdb3              49       60802   487994369    5  Rozszerzona
/dev/sdb5              49        3696    29295616   83  Linux
/dev/sdb6            3697       10991    58592256   83  Linux
/dev/sdb7           10991       14638    29295616   83  Linux
/dev/sdb8           14638       21933    58592256   83  Linux
/dev/sdb9           21933       59621   302733312    b  W95 FAT32
/dev/sdb10          59622       60211     4734976   82  Linux swap / Solaris
/dev/sdb11          60211       60802     4744192   82  Linux swap / Solaris

Kod: Zaznacz cały

# /etc/fstab: static file system information.                                                                                                                                                                  
#                                                                                                                                                                                                              
# <file system>                            <mount point> <type>                  <options>                    <dump>  <pass>                                                                                                                                         
                                                                                                                                                                                                               
proc    /proc   proc    defaults        0       0                                                                                                                                                              
#Entry for /dev/sdb7 :                                                                                                                                                                                         
UUID=40b50678-3ed9-4866-93c8-12fb238e4d6e       /       ext4    defaults,noatime,errors=remount-ro,barrier=1    0       1                                                                                      
#Entry for /dev/sdb2 :                                                                                                                                                                                         
UUID=8bbe6efb-90c3-4cb9-b8a1-1edaa582de5c       /boot   ext3    defaults,noatime,errors=remount-ro      0       2                                                                                              
#Entry for /dev/sdb8 :                                                                                                                                                                                         
UUID=31424034-8b73-44c9-a1ec-b5787c93d7f0       /home   ext4    defaults,noatime,errors=remount-ro,barrier=1    0       2                                                                                      
#Entry for /dev/sdb1 :                                                                                                                                                                                         
UUID=9d5387e9-6ddb-4487-8a21-dc00130b677d       /mnt/debian_boot        ext3    auto,users,rw,exec,noatime      0       0                                                                                      
#Entry for /dev/sdb6 :                                                                                                                                                                                         
UUID=8fc19c66-a925-41da-82c6-4b0e37e6a6c2       /mnt/debian_home        ext4    auto,users,rw,exec,noatime      0       0                                                                                      
#Entry for /dev/sdb5 :                                                                                                                                                                                         
UUID=7cb087b4-8a7c-4396-9792-ed0534362b57       /mnt/debian_system      ext4    defaults        0       0                                                                                                      
#Entry for /dev/sda5 :                                                                                                                                                                                         
UUID=E2C0ACE3C0ACBF63   /mnt/wdc_second ntfs-3g defaults,auto,users,rw,locale=pl_PL.UTF-8       0       0                                                                                                      
#Entry for /dev/sda1 :                                                                                                                                                                                         
UUID=9A28270C2826E74B   /mnt/windows_c  ntfs-3g defaults,auto,users,rw,locale=pl_PL.UTF-8       0       0                                                                                                      
#Entry for /dev/sdb9 :                                                                                                                                                                                         
UUID=04BA-04BC  /mnt/windows_d  vfat    rw,uid=1000,gid=100,umask=0,iocharset=iso8859-2,codepage=852,quiet,showexec     0       0                                                                              
#Entry for /dev/sdb11 :
UUID=24ae1edb-c746-4385-908e-0cc4c0e7446e       none    swap    sw      0       0

#UUID=7eec45af-53e6-4500-b685-f70b0c94325e      none    swap    sw      0       0

Kod: Zaznacz cały


/boot/grub/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set 40b50678-3ed9-4866-93c8-12fb238e4d6e
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set 8bbe6efb-90c3-4cb9-b8a1-1edaa582de5c
set locale_dir=($root)/grub/locale
set lang=pl
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.35-7.slh.1-aptosid-amd64' --class debian --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set 8bbe6efb-90c3-4cb9-b8a1-1edaa582de5c
        echo    'Loading Linux 2.6.35-7.slh.1-aptosid-amd64 ...'
        linux   /vmlinuz-2.6.35-7.slh.1-aptosid-amd64 root=UUID=40b50678-3ed9-4866-93c8-12fb238e4d6e ro vga=791 quiet nomodeset
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-2.6.35-7.slh.1-aptosid-amd64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.35-7.slh.1-aptosid-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set 8bbe6efb-90c3-4cb9-b8a1-1edaa582de5c
        echo    'Loading Linux 2.6.35-7.slh.1-aptosid-amd64 ...'
        linux   /vmlinuz-2.6.35-7.slh.1-aptosid-amd64 root=UUID=40b50678-3ed9-4866-93c8-12fb238e4d6e ro single vga=791
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-2.6.35-7.slh.1-aptosid-amd64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
        insmod part_msdos
        insmod ntfs
        set root='(/dev/sda,msdos1)'
        search --no-floppy --fs-uuid --set 9a28270c2826e74b
        drivemap -s (hd0) ${root}
        chainloader +1
}
menuentry "Debian GNU/Linux, with Linux 2.6.35-6.slh.1-aptosid-686 (on /dev/sdb5)" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set 9d5387e9-6ddb-4487-8a21-dc00130b677d
        linux /vmlinuz-2.6.35-6.slh.1-aptosid-686 root=UUID=7cb087b4-8a7c-4396-9792-ed0534362b57 ro quiet nomodeset
        initrd /initrd.img-2.6.35-6.slh.1-aptosid-686
}
menuentry "Debian GNU/Linux, with Linux 2.6.35-6.slh.1-aptosid-686 (recovery mode) (on /dev/sdb5)" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set 9d5387e9-6ddb-4487-8a21-dc00130b677d
        linux /vmlinuz-2.6.35-6.slh.1-aptosid-686 root=UUID=7cb087b4-8a7c-4396-9792-ed0534362b57 ro single
        initrd /initrd.img-2.6.35-6.slh.1-aptosid-686
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Obecny na tą chwilę dysk /dev/sda ma zostać usunięty z komputera, a na dysku /dev/sdb zostaną usunięte wszystkie partycje oprócz /dev/sdb9, która to zostanie powiększona do maksymalnej dostępnej powierzchni dysku.

Istnieje tutaj świetny artykuł napisany przez użytkownika Akkon, na podstawie ktorego zamierzam się za to zabrać.

Pytanie brzmi: jak najbezpieczniej taką operację wykonać, używając w danym momencie nie przenoszonego systemu, czy od razu z live cd? Jakim narzędziem najlepiej będzie przygotować partycje nowego dysku, by uniknąć "Partycja nie kończy się na granicy cylindra"?
Czy istnieje jakiś prostszy (chamski) sposób niż opisany w w/w artykule?
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Hmm, zacznę od takiego pytania - co masz w MBR? W sumie nie powinno to mieć większego znaczenia, ale warto to wiedzieć.
Ja bym najpierw sprawdził jak się nowy dysk przedstawia sam (np przy użyciu jakiegoś LiveCD), następnie przekopiował Windowsa przy użyciu partimage, Linuksa możesz zwykłym kopiowaniem, tylko będziesz musiał poprawić konfiguracje (na pewno /etc/fstab, /etc/grub.d, nie wiem czy nie coś jeszcze).
Nie tak dawno przenosiłem system z dysku IDE na SATA, ale jednak trochę pozapominałem. Piszę z pamięci. poza tym w moim wypadku nie zmieniał się układ partycji. No nie miałem Windowsa. Ale wydaje mi się, że takie podejście powinno zadziałać. No i jesteś w tej komfortowej sytuacji, że jak coś nie wyjdzie, to masz stary dysk i możesz robić od zera aż się uda.
Pozdrawiam
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Co racja to racja.
W MBR siedzi Grub, jest na /dev/sdb i z niego startują wszystkie systemy.
Windows jest na osobnym dysku, właśnie tym co ma być wymieniony. Ma on swój własny MBR Windowsa.
Z MBR nie będę chyba miał większego problemu ,kiedy uruchomię Debiana przy użyciu Super-gruba na fdd i skorzystam ze skryptów Gruba znajdujących się w /usr/sbin/ i /usr/bin/.
Co do kopiowania.. a co z linkami symbolicznymi?
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Cóż, w moim wypadku nie było problemu. Linki symboliczne wskazują operując nazwami katalogów, a nie fizycznych urządzeń. Po skopiowaniu będą więc wskazywały tam gdzie trzeba, oczywiście pod warunkiem, że skonfigurujesz wszystko jak trzeba.

Przy okazji - nie zwróciłem, że "sklejasz" dwa dyski w jeden. Z MBR nie powinno być problemu. Osobiście jeśli na jednym komputerze (dysku) mam oprócz Linuksa też Windowsa, to zostawiam MBR Windowsowi, a wskazuję partycję startową. Ale nie o tym tu było ;-)
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

No i po zawodach.
Systemy przeniesione za pomocą gparted. Nie poszło jednak gładko. Zaraz po migracji wykrzaczył się grub, na którego naprawie spędziłem dobrych kilka godzin. W krótce jednak okazało się, że to nie błąd w wykonanych czynnościach lecz błąd samego gruba. Grub został zaktualizowany tuż przed przystąpieniem do zabiegów przenoszenia systemu. Generował grub.cfg z błędnymi wpisami. Musiałem zmienić ręcznie menu startowe by uruchomić system. Obecnie problem ten został już rozwiązany przez opiekunów gruba.

A teraz moje dodatkowe pytanie. Panie i panowie.
Jak już napisałem, mam dwa systemy, Debiana Sid z qt-kde 4.41 sc oraz standardową dystrybucję aptosida z pełnym KDE, która to zresztą zadziwia mnie prędkością działania. O Windows XP nie wspomnę bo i nie ma o czym pisać. Obydwa Linuksy są na najnowszym jajku z aptosida. Po przeniesieniu systemów z dysku IDE na SATA występuje pewna niedogodność, mianowicie, na jednym systemie dysk sata jest widziany jako /dev/sda, a na drugim jako /dev/sdb. To samo dotyczy interfejsów sieciowych. Mam dwie karty gigabitowe Ethernet i na jednym systemie jest eth0 jako pierwsza karta oraz eth1 jako druga, a na drugim Debianie jest odwrotnie.
Pytanie brzmi, czy mogę to jakoś pozamieniać by owe dyski, interfejsy sieciowe były jednakowo na obydwu systemach?
Awatar użytkownika
lun
Beginner
Posty: 266
Rejestracja: 01 lutego 2010, 22:06
Lokalizacja: Warszawa

Post autor: lun »

... 1) jeśli posiadasz więcej niż jeden kontroler dysku sata/scsi lub ide, kolejność, w której są one dodawane, jest losowa. Może to powodować losowe zmiany nazw urządzeń jak hdX i hdY przy każdym starcie systemu. To samo dotyczy sdX i sdY. Trwałe nazwy rozwiązują ten problem. ...
Zgodnie z tym może być problemik :)
ODPOWIEDZ