tar -xzf file_name.tgz
Compression
tar -czf file_name.tgz /floder_path
如何重建 GRUB 的步驟如下:
sudo grub,回答密碼。grub> find /boot/grub/stage1,它會找原來裝 GRUB 的硬碟分區,例如 (hd1,0),即第二個硬碟的第一個分區。grub> root (hd1,0),告訴它 linux root 在哪裡。grub> setup (hd0),安裝 GRUB 在第一個硬碟的 MBR (Master Boot Record)。把 Windows 的 bootloader 蓋掉… 之後可以在 GRUB menu 中加入進 Windows 系統的選項,本文不討論這個。grub> quit,結束,這樣就完成 GRUB rebuild,可以 reboot 了。另一作法是把 GRUB 安裝在硬碟分區裡,例如 grub> setup (hd1,0),安裝 GRUB 在第二個硬碟的第一個分區,而不是 MBR。這種方法可以使用 Windows 的 boot loader 來作 dual system 啟動,我就是這麼作的,下回再來介紹。
MOV AX,0201h MOV BX,200h MOV CX,0001h MOV DX,0080h INT 13h
---------------------------- <-- 位移值 00H (0 Bytes) | | | | | Boot Partition Loader | | 這一小段程式用來將可啟動 | | 的作業系統分割區戴入 | | | | | | -----| <-- 位移值 1BEh (446 Bytes) |---------------------| | | Partition Table | | 硬碟分割表 -----| | |55AA| ---------------------------- <-- 位移值 200H (512 Bytes)
位移值 01BE ~ 01CD <-- 第一分割表
位移值 01CE ~ 01DD <-- 第二分割表
位移值 01DE ~ 01ED <-- 第三分割表
位移值 01EE ~ 01FD <-- 第四分割表
紅色部份為程式區 藍色部份為第一分割表 綠色部份為第二分割表 桃紅色部份為第三分割表 紫色部份為第四分割表 亮綠色部份為MBR標記
0000:7C00 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.P.P....| 0000:7C10 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BD BE 07 B1 04 ...PW........... 0000:7C20 38 6E 00 7C 09 75 13 83-C5 10 E2 F4 CD 18 8B F5 8n.|.u.......... 0000:7C30 83 C6 10 49 74 19 38 2C-74 F6 A0 B5 07 B4 07 8B ...It.8,t....... 0000:7C40 F0 AC 3C 00 74 FC BB 07-00 B4 0E CD 10 EB F2 88 ..<.t........... 0000:7C50 4E 10 E8 46 00 73 2A FE-46 10 80 7E 04 0B 74 0B N..F.s*.F..~..t. 0000:7C60 80 7E 04 0C 74 05 A0 B6-07 75 D2 80 46 02 06 83 .~..t....u..F... 0000:7C70 46 08 06 83 56 0A 00 E8-21 00 73 05 A0 B6 07 EB F...V...!.s..... 0000:7C80 BC 81 3E FE 7D 55 AA 74-0B 80 7E 10 00 74 C8 A0 ..>.}U.t..~..t.. 0000:7C90 B7 07 EB A9 8B FC 1E 57-8B F5 CB BF 05 00 8A 56 .......W.......V 0000:7CA0 00 B4 08 CD 13 72 23 8A-C1 24 3F 98 8A DE 8A FC .....r#..$?..... 0000:7CB0 43 F7 E3 8B D1 86 D6 B1-06 D2 EE 42 F7 E2 39 56 C..........B..9V 0000:7CC0 0A 77 23 72 05 39 46 08-73 1C B8 01 02 BB 00 7C .w#r.9F.s......| 0000:7CD0 8B 4E 02 8B 56 00 CD 13-73 51 4F 74 4E 32 E4 8A .N..V...sQOtN2.. 0000:7CE0 56 00 CD 13 EB E4 8A 56-00 60 BB AA 55 B4 41 CD V......V.`..U.A. 0000:7CF0 13 72 36 81 FB 55 AA 75-30 F6 C1 01 74 2B 61 60 .r6..U.u0...t+a` 0000:7D00 6A 00 6A 00 FF 76 0A FF-76 08 6A 00 68 00 7C 6A j.j..v..v.j.h.|j 0000:7D10 01 6A 10 B4 42 8B F4 CD-13 61 61 73 0E 4F 74 0B .j..B....aas.Ot. 0000:7D20 32 E4 8A 56 00 CD 13 EB-D6 61 F9 C3 49 6E 76 61 2..V.....a..Inva 0000:7D30 6C 69 64 20 70 61 72 74-69 74 69 6F 6E 20 74 61 lid partition ta 0000:7D40 62 6C 65 00 45 72 72 6F-72 20 6C 6F 61 64 69 6E ble.Error loadin 0000:7D50 67 20 6F 70 65 72 61 74-69 6E 67 20 73 79 73 74 g operating syst 0000:7D60 65 6D 00 4D 69 73 73 69-6E 67 20 6F 70 65 72 61 em.Missing opera 0000:7D70 74 69 6E 67 20 73 79 73-74 65 6D 00 00 00 00 00 ting system..... 0000:7D80 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0000:7D90 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0000:7DA0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0000:7DB0 00 00 00 00 00 2C 44 63-01 00 00 00 72 20 80 01 .....,Dc....r .. 0000:7DC0 01 00 0B EF BF 1D 3F 00-00 00 A1 0B 7D 00 00 00 ......?.....}... 0000:7DD0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0000:7DE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0000:7DF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
---------------------------------------------------------------------------- |位移值|大小 | 說明 | +------+-------------------------------------------------------------------+ | 00 |Byte | BOOT ID - 若為可開機的分割區則為 80h ~ FFh, 否則為 00h。 | | | | 80h = C, 81h = D, 82h = E ... 以此類推 | | | | 以 fdisk 來說,若第一顆硬碟的分割區設為 Active 則 ID = 80h。 | | | | 4 個分割表中, 只能有一個被設為可開機, 否則將會發生錯誤。 | +------+-----+-------------------------------------------------------------+ | 01h |Byte | 此分割開始之磁頭編號 | +------+-----+-------------------------------------------------------------+ | 02h |Byte | 此分割開始之磁區編號 (6 bits) | | | | 最高的 2 個 bits(bit6-7), 為磁柱編號的 bit8-9 | +------+-----+-------------------------------------------------------------+ | 03h |Byte | 此分割開始之磁柱編號 (10 bits) | | | | bit8-9 放在位移值 02h 的 bit 6-7 | +------+-----+-------------------------------------------------------------+ | 04h |Byte | 作業系統識別碼 | | | | 00 None | | | | 01 DOS FAT-12 bits | | | | 02 XENIX root | | | | 03 XENIX usr | | | | 04 DOS FAT-16 bits <> 32M | | | | 07 HPFS/NTFS | | | | 08 AIX | | | | 09 AIX bootable | | | | 0A OS/2 Boot Manager | | | | 0B DOS FAT-32 bits (Int 13h extensions) | | | | 0C DOS FAT Cylinder > 1024 (Int 13h extensions) | | | | 0E DOS FAT System (Int 13h extensions) | | | | 0F DOS BigExtended (Int 13h extensions) | | | | 20 SPF Boot manager | | | | 40 Venix 80286 | | | | 41 PPC PReP Boot | | | | 51 Novell | | | | 52 Microport | | | | 63 GNU HURD | | | | 64 Novell Netware | | | | 65 Novell Netware | | | | 75 PC/IX | | | | 80 Old MINIX | | | | 81 Linux/MINIX | | | | 82 Linux swap | | | | 83 Linux native | | | | 85 Linux extended | | | | 93 Amoeba | | | | 94 Amoeba BBT | | | | A5 FreeBSD | | | | A6 Open BSD | | | | A7 NETSTEP | | | | A9 NetBSD | | | | B7 BSDI fs | | | | B8 BSDI swap | | | | C7 Syrinx | | | | DB CP/M | | | | E1 DOS access | | | | E3 DOS R/O | | | | EB BeOS fs | | | | F2 DOS secondary | | | | FF BBT | +------+-----+-------------------------------------------------------------+ | 05h |Byte | 此分割結束之磁頭編號 | +------+-----+-------------------------------------------------------------+ | 06h |Byte | 此分割結束之磁區編號 (6 bits) | | | | 最高的 2 個 bits(bit6-7), 為磁柱編號的 bit8-9 | +------+-----+-------------------------------------------------------------+ | 07h |Byte | 此分割結束之磁柱編號 (10 bits) | | | | bit8-9 放在位移值 06h 的 bit 6-7 | +------+-----+-------------------------------------------------------------+ | 08h |DWord| 此分割區前之磁區總數 | +------+-----+-------------------------------------------------------------+ | 12h |DWord| 此分割之磁區總數 | +------+-----+-------------------------------------------------------------+
0000:7C00 33C0 XOR AX,AX 0000:7C02 8ED0 MOV SS,AX 0000:7C04 BC007C MOV SP,7C00 ; 設定堆疊 SS:SP (0000:7C00) 0000:7C07 FB STI 0000:7C08 50 PUSH AX 0000:7C09 07 POP ES 0000:7C0A 50 PUSH AX 0000:7C0B 1F POP DS ; DS = ES = AX = 0 0000:7C0C FC CLD 0000:7C0D BE1B7C MOV SI,7C1B 0000:7C10 BF1B06 MOV DI,061B 0000:7C13 50 PUSH AX ; AX = 0000 0000:7C14 57 PUSH DI ; DI = 061B 0000:7C15 B9E501 MOV CX,01E5 0000:7C18 F3 A4 REPZ MOVSB ; 將第二部份的程式與硬碟分割表複製到記憶體 0000:061Bh 位置 0000:7C1A CB RETF ; 跳到新位置繼續執行, 也就是 ; MBR 程式的第二部份起始點 (0000:061B) ;MBR 程式第二部份 0000:7C1B BDBE07 MOV BP,07BE ; BP = 07BEh = 第一個硬碟分割表位址 0000:7C1E B104 MOV CL,04 ; CL = 4, 最多共有 4 組