Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: jarmala - 22.01.16 - klo:19.15
-
Hankin uuden 120 GB ssd:n, jolle olisi tarkoitus siirtää (lue: kopioida) käytössä oleva 14.04. Olen kahlannut läpi täällä olevia aiempia keskusteluja aiheesta, mutta varmistukseksi kysynkin silti: Miten siirron fiksuimmin tekisi?
Levyt ja osiot ovat ennen mitään muutoksia seuraavasti:
ari@ari:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 päätä, 63 sektoria/ura, 30401 sylinteriä, yhteensä 488397168 sektoria
Yksiköt = 1 * 512 = 512 -tavuiset sektorit
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Levyn tunniste: 0x00041975
Laite Käynn Alku Loppu Lohkot Id Järjestelmä
/dev/sda1 * 2048 3905535 1951744 83 Linux
/dev/sda2 3907582 488396799 242244609 5 Laajennettu
/dev/sda5 3907584 52733951 24413184 83 Linux
/dev/sda6 476678144 488396799 5859328 82 Linux-sivutus / Solaris
ari@ari:~$ sudo fdisk -l /dev/sdc
VAROITUS: GPT (GUID Partition Table) havaittu laitteella ”/dev/sdc”! Fdisk ei tue GPT:tä. Käytä GNU Partediä.
Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
255 päätä, 63 sektoria/ura, 364801 sylinteriä, yhteensä 5860533168 sektoria
Yksiköt = 1 * 512 = 512 -tavuiset sektorit
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Levyn tunniste: 0x00000000
Laite Käynn Alku Loppu Lohkot Id Järjestelmä
/dev/sdc1 1 4294967295 2147483647+ ee GPT
Osion 1 alku ei ole fyysisen sektorin rajalla.
ari@ari:~$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 päätä, 63 sektoria/ura, 14593 sylinteriä, yhteensä 234441648 sektoria
Yksiköt = 1 * 512 = 512 -tavuiset sektorit
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Levyn tunniste: 0x0006ffc8
Laite Käynn Alku Loppu Lohkot Id Järjestelmä
/dev/sdb1 2048 6565887 3281920 83 Linux
/dev/sdb2 6565888 69914623 31674368 83 Linux
/dev/sdb3 69914624 234440703 82263040 83 Linux
ari@ari:~$
Eli siis sda1:lla on boot, sda5:llä root ja sda5:llä swap. sdc1:llä on home.
Haluaisin nyt siis kopioida bootin ja rootin uudelle ssd:lle ja pitää homen sdc:llä.
Kannattaako swap jättää edelleen sda:lle?
Miten kopioin bootin ja rootin ssd:lle niin, että ne toimivat kuten nyt, mutta kone käyttää niitä ssd:ltä? Umounttaanko bootin ja kirjoitan sen dd:llä sdb1:lle? Ja sama homelta sdb2:lle? Eh?
Joudun ilmeisesti puukottamaan grubia. Miten?
Ja varmaankin fstab:kin vaatii viritystä. Millaista?
Tai sitten: miten foorumin huippupätevät asiantuntijat tämän tekisivät?
T. Ari
-
Onnistusko että live ubuntulla käyntiin. Osioi sen sdd levyn samalla tavalla kuin lähdelevyn.
sudo cp -a /dev/lähde /dev/kohde
Toistaa joka osiolle ton saman. En oo testannu mutta pitäis toimia ja sen grubin voi asentaa uudestaan chroottina.
Siihen pitää mountata sys dev ja proc. Ohjeita on netissä
-
Hieman parempi ohje
Tarvitset ainakin Ubuntun asennusmedian (tai vastaavan). Jos levyt olisi identtiset kloonaus menisi helposti dd:llä.
df -h olisi kertonut osioiden koot. Pienellä levyllä /boot osio ei ole tarpeen.
Käynnistä kone asennusmedialla. root oikeudet saat sudo su -
Tee hakemistot /mnt/vanha ja /mnt/uusi (mkdir).
Liitetään vanha levy
mount /dev/sda5 /mnt/vanha
mount /dev/sda1 /mnt/vanha/boot
Liitetään uusi levy
mount /dev/sdb2 /mnt/uusi
mkdir /mnt/uusi/boot
mount /dev/sdb1 /mnt/uusi/boot
Jos oikein ymmärsin sdb1 on boot ja sdb2 root.
Kopiointi menee ihan cp -a /mnt/vanha/* /mnt/uusi
-a vipu kopioi oikeudet, alihakemistot ym. vaihtoehtoisesti
käy vaikka -axv
Listaa levyjen UUID arvot
blkid
Editoi fstab
nano -w /mnt/uusi/etc/fstab
Ainakin /boot ja "/"pitää muuttaa. ja /home ja swap pitää ainakin
tarkistaa. Onnistuu päätteessä näppärästi jos toiseen välilehteen
avaa blkid:n tulosteen ja kopioi arvot sieltä.
grubin korjaus onnistuu chrootin alla asennus medialla.
Asennusmedialla oli muistaakseni valinta käynnistä
ensimmäiseltä kiintolevyltä tai korjaa lataaja ym..
jos chroot on vieras voi käyttää myös tuota tai jotain
tarkoitukseen tehtyä levyä.
Edit. Oletan että uusi levy on osioitu ja tiedostojärjestelmät tehty.
Komennot tarvitsee sudo eteen jos ei root oikeuksia otettu käyttöön.
-
Tarvitset ainakin Ubuntun asennusmedian (tai vastaavan). Jos levyt olisi identtiset kloonaus menisi helposti dd:llä.
df -h olisi kertonut osioiden koot. Pienellä levyllä /boot osio ei ole tarpeen.
Luulen että tässkin tapauksessa dd:llä kloonaus onnistuisi. Kannattaisi ainakin ensin kokeilla sillä jos toimii niin ei ole mitään tarvetta fstabinmuokkaamiseen ja grubin asenteluun vaan dd ainoa tarvittava komento ja toimenpide. /boot osio on tapeen koska GPT osiotaulu.
-
/boot osio on tapeen koska GPT osiotaulu.
Legacy-tyyppisessä GPT-boottauksessa tarvittava BIOS boot partition (https://en.wikipedia.org/wiki/BIOS_boot_partition) on eri asia kuin /boot, joka saa sijaita myös juuriosiolla. UEFI-koneissa taas tarvitaan EFI-osio.
Jarmalalla on perinteinen MBR-osiotaulu, jossa tästä ei tarvitse huolehtia.
-
Tarvitset ainakin Ubuntun asennusmedian (tai vastaavan). Jos levyt olisi identtiset kloonaus menisi helposti dd:llä.
df -h olisi kertonut osioiden koot. Pienellä levyllä /boot osio ei ole tarpeen.
Luulen että tässkin tapauksessa dd:llä kloonaus onnistuisi. Kannattaisi ainakin ensin kokeilla sillä jos toimii niin ei ole mitään tarvetta fstabinmuokkaamiseen ja grubin asenteluun vaan dd ainoa tarvittava komento ja toimenpide. /boot osio on tapeen koska GPT osiotaulu.
dd onnistuisi, mutta kannattaako? SSD-levyn geometria kuitenkin erilainen ja en nyt jaksa miettiä sitä - voi googlettaa aligning SSD partitions. Itse tipauttaisin /boot osion pois - ei tarvitse miettiä sen tilantarvetta. MBR-toimii ihan hyvin pikkulevyillä. cp -a toimii ihan hyvin, kun koneen käynnistää jollain asennusmedialla. Fstab tiedostoon voi laittaa hyvin myös /dev/sda1 / ext4 noatime 0 1. discard on melko turha. Jos muistia reippaasti voi jotain pistää muistiin esim.
none /var/tmp tmpfs size=4048M,noatime 0 0
dd erikokoisilla levyillä voi vaatia osiotaulun korjailua tai pientä etukäteissäätöä eli pienennetään osioita ennen kloonaamista. dd if=/dev/sdX of=/dev/sdY on vaarallinen komento. Suosittelen tar/dar paketin ottamista talteen systeemistä. DD poistaa oikeasti levyn sisällön. cp -a kopio - vikaan voi mennä - mutta ei saa täydellistä tuhoa aikaiseksi.
-
No nyt kokeilin sdd-levyä: kopioin vanhat boot ja root ssd:lle. Editoin sinne fstab:iin ssd-levyn boot ja root -osiot. Ja sitten sudo update-grub.
ari@ari:~$ sudo update-grub
Generating grub configuration file ...
Varoitus: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Linux-levykuva löytyi: /boot/vmlinuz-3.13.0-77-generic
Löytyi initrd-levykuva: /boot/initrd.img-3.13.0-77-generic
Linux-levykuva löytyi: /boot/vmlinuz-3.13.0-76-generic
Löytyi initrd-levykuva: /boot/initrd.img-3.13.0-76-generic
Linux-levykuva löytyi: /boot/vmlinuz-3.13.0-74-generic
Löytyi initrd-levykuva: /boot/initrd.img-3.13.0-74-generic
Linux-levykuva löytyi: /boot/vmlinuz-3.13.0-73-generic
Löytyi initrd-levykuva: /boot/initrd.img-3.13.0-73-generic
Linux-levykuva löytyi: /boot/vmlinuz-3.13.0-71-generic
Löytyi initrd-levykuva: /boot/initrd.img-3.13.0-71-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
Löytyi Ubuntu 14.04.3 LTS (14.04) kohteella /dev/sdb2
valmis
Ja buuttaus. Mutta jotenkin tuntuu, että edelleenkin on käytössävanhan sda-levyn boot ja root:
/dev/sda1: UUID="8d917eb1-dc89-4b57-8521-0a0050c3c877" TYPE="ext4"
/dev/sda5: UUID="67ceedee-3bb6-45d1-8560-c483c5c984d1" TYPE="ext4"
/dev/sda6: UUID="df93df8e-b0a2-4d15-9b8e-019688d591a6" TYPE="swap"
/dev/sdb1: UUID="2200006a-0f9d-44b5-a3e8-6e9c9c383319" TYPE="ext4"
/dev/sdb2: UUID="df040704-346d-4357-81b5-03c2b15b239e" TYPE="ext4"
/dev/sdb3: UUID="cde96957-d5de-4e2b-b27d-87e55b8d4c6a" TYPE="ext4"
/dev/sdc1: UUID="0b7685fd-103e-4b62-9c70-8c8adf53f82d" TYPE="ext4"
Tiedostojärjestelmä Koko Käyt Vapaa Käy% Liitospiste
udev 1,8G 12K 1,8G 1% /dev
tmpfs 370M 1,1M 369M 1% /run
/dev/sda5 23G 17G 5,2G 77% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
none 5,0M 4,0K 5,0M 1% /run/lock
none 1,9G 712K 1,9G 1% /run/shm
none 100M 56K 100M 1% /run/user
/dev/sdc1 2,7T 1,4T 1,3T 52% /home
/dev/sda1 1,9G 715M 1019M 42% /boot
/dev/sdb2 30G 17G 12G 59% /media/ari/df040704-346d-4357-81b5-03c2b15b239e
Ja jos vertaa vielä fstabeja:
ari@ari:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sdb5 during installation
UUID=67ceedee-3bb6-45d1-8560-c483c5c984d1 / ext4 errors=remount-ro 0 1
# /boot was on /dev/sdb1 during installation
UUID=8d917eb1-dc89-4b57-8521-0a0050c3c877 /boot ext4 defaults 0 2
# /home was on /dev/sda1 during installation
UUID=0b7685fd-103e-4b62-9c70-8c8adf53f82d /home ext4 defaults,noatime,nodiratime 0 2
# swap was on /dev/sdb6 during installation
UUID=df93df8e-b0a2-4d15-9b8e-019688d591a6 none swap sw 0 0
ari@ari:~$ cat /media/ari/df040704-346d-4357-81b5-03c2b15b239e/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sdb5 during installation
UUID=df040704-346d-4357-81b5-03c2b15b239e / ext4 errors=remount-ro 0 1
# /boot was on /dev/sdb1 during installation
UUID=2200006a-0f9d-44b5-a3e8-6e9c9c383319 /boot ext4 defaults 0 2
# /home was on /dev/sda1 during installation
UUID=0b7685fd-103e-4b62-9c70-8c8adf53f82d /home ext4 defaults,noatime,nodiratime 0 2
# swap was on /dev/sdb6 during installation
UUID=df93df8e-b0a2-4d15-9b8e-019688d591a6 none swap sw 0 0
Niin eikös ne ole erilaiset? Miten siis saan tolkutetuksi grubille, että nyt pitäisi käyttää ssd:n osioita?
T. Ari
-
Jos haluat lopulta päästä vanhasta levystä kokonaan eroon tai muuttaa sen kakkoslevyksi/datavarastoksi, ensinnäkin Grubin alkulataaja kannattaisi asentaa SSD:lle. Sitten on vielä ajettava update-grub chrootissa, jotta grub.cfg tulee luotua oikein.
sudo mount /dev/sdb2 /mnt
sudo mount /dev/sdb1 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install --boot-directory=/mnt/boot /dev/sdb
update-grub
exit
Sitten uudelleenkäynnistys ja vaihda levyjen boottijärjestys biosissa siten, että kone käynnistyy sdb:ltä, jos asensit alkulataajan sinne. Tai ota vanha levy kokonaan irti.
Sama onnistuu myös asennuslevyn livetilassa: http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd
-
Jos haluat lopulta päästä vanhasta levystä kokonaan eroon tai muuttaa sen kakkoslevyksi/datavarastoksi, ensinnäkin Grubin alkulataaja kannattaisi asentaa SSD:lle.
Sorry, en ymmärrä ohjettasi. Mä oon ihan böbi.
En halua päästä vanhasta sda -levystä eroon. Ainakaan vielä. Haluan, että voin grubista valita, buuttaanko vanhalta sda:lta vai uudelta sdb:ltä. Ja niissä pitää olla ihan sama 14.04 LTS. Buuttiosiokin saa edelleen pysyä vanhalla sda1:llä ja swap sda6:lla. Enpä osannutkaan kuvitella, että tämä uuden levyn käyttöönotto osoittautuisi näin vaikeaksi.
Siis:
vanha == uusi
sda1 == sdb1 (boot)
sda5 == sdb2 (root)
sdc1 == sdc1 (home)
Olen kopannut (cp -a) asennuslevyn livetilassa nuo vanhat osiot uuden levyn osioille. Ja nyt vaan pitäisi kyetä kertomaan grubille, että tekee kaksi buuttivaihtoehtoa valikkoonsa:
vanha: sda1, sda5 ja sdc1
uusi: sdb1, sdb2 ja sdc1
Olisi se vaan kiva päästä kokeilemaan, onko ss-levy niin nopea kuin on kehuttu...
-
Jos haluat lopulta päästä vanhasta levystä kokonaan eroon tai muuttaa sen kakkoslevyksi/datavarastoksi, ensinnäkin Grubin alkulataaja kannattaisi asentaa SSD:lle.
Sorry, en ymmärrä ohjettasi. Mä oon ihan böbi.
En halua päästä vanhasta sda -levystä eroon. Ainakaan vielä. Haluan, että voin grubista valita, buuttaanko vanhalta sda:lta vai uudelta sdb:ltä. Ja niissä pitää olla ihan sama 14.04 LTS. Buuttiosiokin saa edelleen pysyä vanhalla sda1:llä ja swap sda6:lla. Enpä osannutkaan kuvitella, että tämä uuden levyn käyttöönotto osoittautuisi näin vaikeaksi.
Tässäkin tapauksessa voit suorittaa yllä esittämäni komennot. Jos jostain syystä et halua asentaa SSD:llä sijaitsevan Grubin lataajaa SSD:n MBR:ään (siitä ei ole haittaa), jätä grub-install suorittamatta.
Aja vielä lopuksi uudessa päätteessä nykyisen Grubin päivitys:
sudo update-grub
Se poimii sdb:ltä Ubuntun, kuten aiemmassa listauksessasi näkyy:
Löytyi Ubuntu 14.04.3 LTS (14.04) kohteella /dev/sdb2)
Erona on, että esittämäni operaation jälkeen tämä valinta toimii oikein.
-
Jos vanha asennus säilytetään, niin riittää update-grub vanhassa asennuksessa. Se lisää uuden valikon. Kannattaa tarkistaa sen oikeellisuus.
Kun systeemi on käynnissä uudella levyllä, niin silloin voi asentaa grubin uudelle levylle ilman chroottia. chroot on hieman hankala aloittelijan ymmärtää.
Itse teen chrootin aina root-oikeuksilla ilman sudo-komentoa eli ensiksi sudo su -. chrootissa vaikuttaa myös onko käytössä systemd tai joku muu käynnistysjärjestelmä.
Kun uutta levyä päivitetään ongelmaksi muodostuu kernelin-päivitys. Silloin toisessa asennuksessa oleva grub ei päivity. Ongelman voi ratkaista parilla
tavalla. Helppo on käyttää linkkiä esim. linkki vmlinuz osoittaa käytössä olevaan kerneliin. Tuo vaatii pienen muokkauksen grubiin, mutta sen jälkeen ei tarvitse aina ajaa sitä update-grub toisessa systeemissä.