This shows you the differences between two versions of the page.
wiki:os:linux:windowsgpttombr [2018/01/22 09:53] root vytvořeno |
wiki:os:linux:windowsgpttombr [2018/01/22 09:58] (current) root |
||
---|---|---|---|
Line 15: | Line 15: | ||
</ | </ | ||
+ | 4) **fdisk** - spojit prvni tři partition do jedné, čtvrtou přečíslovat na druhou, oflagovat první partition jako bootable. | ||
+ | |||
+ | Stav před změnou: | ||
<code bash> | <code bash> | ||
+ | fdisk /dev/vda | ||
+ | p | ||
+ | |||
+ | Command (m for help): p | ||
+ | Disk /dev/vda: 127 GiB, 136365211648 bytes, 266338304 sectors | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: dos | ||
+ | Disk identifier: 0x00000000 | ||
+ | |||
+ | Device | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
</ | </ | ||
+ | |||
<code bash> | <code bash> | ||
+ | # Smažeme první tři parttion. | ||
+ | d 1 | ||
+ | d 2 | ||
+ | d 3 | ||
+ | |||
+ | # Vytvoříme novou první parttion od začátku disku 2048 až po začátek původně čtvrté partition. | ||
+ | n p 1 <enter (2048)> <konec 3.part. (1081343)> | ||
+ | |||
+ | Na nové partition, která je teď první, vytvoříme filesysytém NTFS. | ||
+ | t 1 7 | ||
+ | p | ||
+ | |||
+ | Command (m for help): p | ||
+ | Disk /dev/vda: 127 GiB, 136365211648 bytes, 266338304 sectors | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: dos | ||
+ | Disk identifier: 0x00000000 | ||
+ | |||
+ | Device | ||
+ | / | ||
+ | / | ||
</ | </ | ||
+ | |||
<code bash> | <code bash> | ||
+ | # Vda4 bychom chtěli jako vda2 - pro pořádek. | ||
+ | # Smažeme tedy čtvrtou partition. (Ke ztrátě dat nedojde, vytvoříme-li ji znovu se stejným začátkem a koncem.) | ||
+ | d 4 | ||
+ | |||
+ | # Vytvoříme novou partition 2. | ||
+ | n p 2 <enter (1081344)> | ||
+ | |||
+ | # Vytvoříme na ní filesysytém NTFS. | ||
+ | t 2 7 | ||
+ | |||
+ | # Oflagujeme ji jako boot. | ||
+ | a 1 | ||
+ | p | ||
+ | |||
+ | Command (m for help): p | ||
+ | Disk /dev/vda: 127 GiB, 136365211648 bytes, 266338304 sectors | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: dos | ||
+ | Disk identifier: 0x00000000 | ||
+ | |||
+ | Device | ||
+ | / | ||
+ | / | ||
+ | |||
+ | # Zapíšeme změny na disk | ||
+ | w | ||
</ | </ | ||
+ | |||
+ | 5) **dd** | ||
+ | |||
+ | * připravit si referenční čistou instalaci windows v oVirtu. | ||
+ | * připojit referenční disk se vzorovou čistou instalací widlí | ||
+ | * zkopírovat (dd) obsah první partition z referenční čisté instalace windows (připravený image by se hodil) | ||
+ | * bacha, aby cílová nebyla menší než zdrojová (opak nevadí) | ||
+ | |||
<code bash> | <code bash> | ||
+ | fdisk -l | ||
+ | Disk /dev/vda: 127 GiB, 136365211648 bytes, 266338304 sectors | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: dos | ||
+ | Disk identifier: 0x00000000 | ||
+ | |||
+ | Device | ||
+ | / | ||
+ | / | ||
+ | |||
+ | |||
+ | Disk /dev/loop0: 138.8 MiB, 145498112 bytes, 284176 sectors | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | |||
+ | |||
+ | Disk /dev/vdb: 130 GiB, 139586437120 bytes, 272629760 sectors | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: dos | ||
+ | Disk identifier: 0xfe809e9f | ||
+ | |||
+ | Device | ||
+ | / | ||
+ | / | ||
</ | </ | ||
+ | |||
+ | <code bash> | ||
+ | dd if=/ | ||
+ | </ | ||
+ | |||
+ | 6) **opravit MBR za pomoci dd a hexdumpu** | ||
+ | * /dev/vdb = vzor (tento byl připojen za běhu) | ||
+ | * /dev/vda = cil (s timto VM nastartoval) | ||
+ | * Z blokového zařízení nelze pomocí dd číst po jednotlivých bytech (min. 512). Chceme-li tedy sloučit prvních 446 byte ze vzorového disku se zbytkem (partition table) z cílového disku, musíme použít jako prostředníka soubory - z nich již lze číst a a zapisovat do nich po jednom byte. Viz. postup níže... | ||
+ | |||
+ | Zkopírujeme prvních 512 byte do souboru ./vzor. | ||
+ | |||
+ | (pozn. od adresy 000001be zacina partition table) | ||
+ | <code bash> | ||
+ | dd if=/dev/vdb bs=512 count=1 > ./vzor | ||
+ | hexdump -C ./vzor | ||
+ | </ | ||
+ | |||
+ | Z cílového disku si také zkopírujeme prvních 512 byte do souboru ./cil | ||
+ | |||
+ | <code bash> | ||
+ | dd if=/dev/vda bs=512 count=1 > ./cil | ||
+ | hexdump -C ./cil | ||
+ | </ | ||
+ | |||
+ | Nyní zkopírujeme jen 446 prvních byte ze souboru ./vzor do souboru ./cil (conv=notrunc zajistí aby zbytek souboru ./cil zůstal nezměněn) | ||
+ | |||
+ | <code bash> | ||
+ | dd if=./vzor bs=1 count=446 conv=notrunc of=./cil | ||
+ | hexdump -C ./cil | ||
+ | </ | ||
+ | |||
+ | Zkopírujeme obsah souboru ./cil na cílový disk. | ||
+ | |||
+ | <code bash> | ||
+ | dd if=./cil of=/dev/vda bs=512 count=1 | ||
+ | </ | ||
+ | |||
+ | Výpis prvních 512 byte cílového disku pro kontrolu. | ||
+ | |||
+ | <code bash> | ||
+ | dd if=/dev/vda bs=512 count=1 | hexdump -C | ||
+ | |||
+ | sync | ||
+ | </ | ||
+ | |||
+ | Vypnout VM. | ||
+ | |||
+ | 7) **Oživení VM v oVirtu** | ||
+ | |||
+ | * Připojit systémový disk jako IDE k VM | ||
+ | * Nastartovat VM, proběhnou nějaké opravy, ale systém by měl nakonec naskočit | ||
+ | * Připojit dočasně druhý jakýkoliv (fake) disk jako virtio, klidně zaživa | ||
+ | * Otevřít správce zařízení, | ||
+ | * Vypnout VM | ||
+ | * Odpojit fake disk | ||
+ | * Změnit primární disk na virtio | ||
+ | * Nastartovat VM | ||
+ | * Nastavit síť dle poznámek - možná nepůjdou nové síťovky pojmenovat stejně jako ty původní. Je to tím, že ty původní tam stále jsou, ale nejsou vidět. Ve správci zařízení stačí dát něco jako “Zobrazit skrytá zařízení” a staré síťovky pak odstranit. | ||
+ | * Zkontrolovat eventlog | ||
+ |