ThaiTux.info - grub https://www.thaitux.info/taxonomy/term/71 debian: อัปเดตไบออสด้วย Thumb Drive โดย freedos อาศัย grub2 https://www.thaitux.info/node/688 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>สมมุติว่าใช้เดเบียนรุ่นตั้งแต่ squeeze ขึ้นไป ซึ่งติดตั้ง <a href="http://www.gnu.org/software/grub/grub-2.en.html">grub2</a> เป็นตัวจัดการการบูตอยู่แล้ว</p> <h4>เตรียมการ</h4> <p>1. ที่ต้องใฃ้คือ Thumb Drive ที่ฟอร์แมตแล้ว (มีข้อมูลอยู่ก็ไม่เป็นไร ใช้เนื้อที่แค่ 1.44M ดิสเก็ตต์แผ่นเดียว โดยไม่ต้องฟอร์แมตใหม่) สมมุติว่าเมื่อเสียบช่อง usb แล้ว เขาจะเมานต์อัตโนมัติไว้ที่ <code>/media/disk</code></p> <p>2. ติดตั้งแพคเกจ</p> <pre>$ <strong>sudo aptitude install syslinux dosfstools</strong></pre><p> 3. เตรียมไฟล์อัปเดตไบออสจากผู้ผลิตเมนบอร์ดเอาไว้ให้เรียบร้อย ถ้าไฟล์ถูกบีบอัดเป็นไฟล์เดียว ให้แตกออกมาด้วย Archive Manager (File Roller) จะมี 2 ไฟล์ที่ต้องใช้ คือไฟล์ EXE สำหรับการรันไฟล์นึง และไฟล์ข้อมูลไบออสอีกไฟล์นึง</p> <p><em>สมมุติถ้าเป็นเมนบอร์ดกิกาไบต์ G31M-ES2L เมื่อแตกไฟล์ที่ดาวน์โหลดออกมาแล้วจะได้ไฟล์ FLASHSPI.EXE และ G31MES2L.F10 ตามลำดับ</em></p> <p>4. เอาไฟล์ freedos มา</p> <pre>$ <strong>wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img</strong></pre><p> 5. เมานต์ขึ้นมาเอาไว้ที่ /mnt/tmp เพื่อลบไฟล์ที่ไม่ต้องการออก</p> <pre>$ <strong>sudo mkdir -p /mnt/tmp</strong> $ <strong>sudo mount -o loop fdboot.img /mnt/tmp</strong> $ <strong>sudo rm -rf /mnt/tmp/{driver,fdconfig.sys,freedos}</strong></pre><p> และคัดลอกไฟล์ไบออสเข้าไป<br /> <em><br /> จากตัวอย่างจะเป็นสองไฟล์ข้างต้น ให้ปรับเปลี่ยนเอาตามจริง</em></p> <pre>$ <strong>sudo cp ~/Desktop/FLASHSPI.EXE /mnt/tmp</strong> $ <strong>sudo cp ~/Desktop/G31MES2L.F10 /mnt/tmp</strong></pre><p></p> <p>6. ถอดการเมานต์ คัดลอกไฟล์ไปยัง Thumb Drive</p> <pre>$ <strong>sudo umount /mnt/tmp</strong> $ <strong>cp fdboot.img /media/disk</strong></pre><p> 7. คัดลอกไฟล์เคอร์เนลที่ต้องใช้ในการบูตคือ <code>memdisk</code> จากแพคเกจ syslinux และรีบูต</p> <pre>$ <strong>cp /usr/lib/syslinux/memdisk /media/disk</strong> $ <strong>umount /media/disk</strong> $ <strong>sudo shutdown -r now</strong></pre><h4>ขั้นตอนบูต</h4> <p>เมื่อเริ่มเข้า grub2 ให้กด "c" เพื่อเลือกใช้บรรทัดคำสั่ง และพิมพ์คำสั่งดังนี้</p> <pre><strong>set root=(hd1,1) linux16 /memdisk initrd16 /fdboot.img boot</strong></pre><p> เครื่องจะบูตเข้า freedos ซึ่งเราสามารถแฟลชไบออสด้วยการรันโปรแกรมไบออสที่เราเตรียมการไว้แล้วข้างต้น<br /> <em>(จากตัวอย่าง จะต้องสั่งรันด้วย <code>FLASHSPI.EXE G31MES2L.F10</code> เป็นต้น)</em></p> <p>เมื่อเสร็จแล้ว ก็สามารถบูตเพื่อใช้งานไบออสใหม่ได้เลย</p> <p><strong>เอามาจาก</strong></p> <ul> <li><a href="http://en.gentoo-wiki.com/wiki/FreeDOS_Flash_Drive">gentoo: FreeDOS Flash Drive</a></li> </ul> <h3>update</h3> <p>ล่าสุดใช้แพ็คเกจ <a href="http://www.flashrom.org/Flashrom">flashrom</a> แทนได้แล้ว</p> <p>ติดตั้ง</p> <pre># <strong>aptitude install flashrom</strong></pre><p> เก็บรอมเก่า</p> <pre># <strong>flashrom -r OLD.bin</strong></pre><p> แฟลชรอมใหม่</p> <pre># <strong>flashrom -w NEW.bin</strong></pre><p> <strong>เอามาจาก</strong></p> <ul> <li><a href="https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux">archlinux: Flashing BIOS from Linux</a></li> </ul> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/71">grub</a></div><div class="field-item odd"><a href="/taxonomy/term/228">freedos</a></div><div class="field-item even"><a href="/taxonomy/term/314">bios</a></div></div></div> Wed, 27 Jan 2010 05:21:36 +0000 wd 688 at https://www.thaitux.info https://www.thaitux.info/node/688#comments debian: บันทึกการซ่อม grub https://www.thaitux.info/node/230 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>ทดลองซ่อม grub บนเดเบียน ข้อมูลคือ</p> <pre> Device Boot Start End Blocks Id System /dev/hda1 1 1217 9775521 c W95 FAT32 (LBA) /dev/hda2 * 1218 1230 104422+ 83 Linux /dev/hda3 1231 6769 44492017+ 5 Extended /dev/hda5 1231 1293 506016 82 Linux swap / Solaris /dev/hda6 1294 3118 14659281 83 Linux /dev/hda7 3119 4335 9775521 83 Linux /dev/hda8 4336 5552 9775521 83 Linux /dev/hda9 5553 6769 9775521 83 Linux </pre><p><em>/boot คือ /dev/hda2 และ / คือ /dev/hda6</em></p> <p>ขั้นตอนมีดังนี้</p> <ol> <li>ใส่แผ่นติดตั้งเดเบียน</li> <li>เมื่อบูตจนถึงขั้นตอนติดตั้งเครือข่าย ให้กด ALT+F2 เพื่อออกมาสู่เชลล์</li> <li>ตรวจดูพาร์ติชั่นเก่าด้วยคำสั่ง<br /> <code># fdisk -l</code></li> <li>เตรียมการ chroot ไปยังพาร์ติชั่นของเดเบียนที่เราจะซ่อม<br /> <code># mkdir /mnt/root<br /> # mount /dev/ide/host0/bus0/target0/lun0/part6 /mnt/root</code> <p><em>ถ้าเป็นดิสก์แบบ sata เปลี่ยนจาก /dev/ide/... เป็น /dev/scsi/...<br /> lun0 คือ hda<br /> part6 คือ /dev/hda6 หรือ (hd0,5) ของ grub</em></p></li> <li>chroot ไปยังพาร์ติชั่นของเดเบียน<br /> <code># chroot /mnt/root</code></li> <li>ถ้าแยกบูตพาร์ติชั่นตามตัวอย่าง ต้องเมานต์ /boot ในขั้นตอนนี้ด้วย</li> <p><code># mount /dev/hda2 /boot</code><br /> <em>ถ้าเป็น sata เปลี่ยนจาก hda2 เป็น sda2</em> </p><li>ซ่อม grub<br /> <code># grub-install /dev/hda</code><br /> <em>ถ้าเป็น sata เปลี่ยนจาก hda เป็น sda</em></li> <li>เรียบร้อยแล้ว รีบูตได้เลย<br /> <code># reboot</code></li> </ol> <p>เอามาจาก <a href="http://www.cyberciti.biz/tips/restore-debian-linux-grub-boot-loader.html">nixCraft - Restore Debian Linux Grub boot loader</a></p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/1">linux</a></div><div class="field-item odd"><a href="/taxonomy/term/3">debian</a></div><div class="field-item even"><a href="/taxonomy/term/70">windows</a></div><div class="field-item odd"><a href="/taxonomy/term/71">grub</a></div></div></div> Tue, 08 May 2007 08:29:52 +0000 wd 230 at https://www.thaitux.info https://www.thaitux.info/node/230#comments ubuntu: บันทึกการซ่อม grub https://www.thaitux.info/node/56 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>คราวก่อนบันทึก <a href="http://www.thaitux.info/node/55">การติดตั้งหลายระบบปฏิบัติการ</a> ปรากฎว่าเครื่องมีปัญหานิดหน่อย เลยต้องติดตั้ง WinMe กลับเข้าไป ทำให้ grub หายหมด จึงต้องทดลองซ่อมให้ grub คืนมา</p> <p>คราวก่อน<br /> /dev/hda1 เป็น WinMe<br /> /dev/hda2 เป็น WinXP<br /> /dev/hda3 เป็น extend<br /> /dev/hda5 เป็น /boot<br /> /dev/hda6 เป็น swap<br /> /dev/hda7 เป็น /</p> <p>เริ่มซ่อมดังนี้<br /> บูตด้วยแผ่น Ubuntu Live CD 6.06.1 LTS</p> <p>เปิด Terminal<br /> Applications -&gt; Accessories -&gt; Terminal</p> <p>แปลงตัวเป็น root<br /> <code>$ sudo su</code></p> <p>สร้างจุดเมานต์ /mnt/root<br /> <code># mkdir /mnt/root</code></p> <p>เมานต์ให้ /dev/hda7 มาอยู่ที่ /mnt/root<br /> <code># mount /dev/hda7 /mnt/root</code></p> <p>เตรียมการย้ายรูตไปอยู่ที่ /mnt/root โดยต้องเมานต์ process และลิงก์ device ไปที่ใหม่<br /> <code># mount -t proc none /mnt/root/proc<br /> # mount -o bind /dev /mnt/root/dev<br /> # mount -t sysfs none /mnt/root/sys</code></p> <p>ย้ายรูต<br /> <code># chroot /mnt/root /bin/bash</code></p> <p>เนื่องจากแยก /boot เป็น /dev/hda5 เลยต้องเมานต์ลงมาทับ /boot<br /> <code># mount /dev/hda5 /boot</code></p> <p>คราวนี้ก็ทำตามวิธีของ <a href="http://www.thailinuxhosting.com/yabbse/index.php?board=7;action=display;threadid=6812">คุณหมอ DrRider จาก ThaiLinuxCafe</a> ได้แล้วครับ<br /> <code># grub<br /> grub&gt; root (hd0,4)</code></p> <pre>Filesystem type is ext2fs, partition type 0x83</pre><p> <code>grub&gt; setup (hd0)</code></p> <pre>Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... yes Checking if "/grub/stage2" exists... yes Checking if "/grub/e2fs_stage1_5" exists... yes Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded. succeeded Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,4)/grub/stage2 /grub/menu .lst"... succeeded Done.</pre><p> เรียบร้อยแล้วครับ ออกจาก grub ด้วยคำสั่ง quit แล้วก็บูตใหม่ได้เลย</p> <p><strong>update</strong></p> <ul> <li>หากใช้แผ่นเดเบียนแบบดิบ ๆ เมื่อบูตและทำงานผ่านขั้นตอน chroot แล้ว ถ้าขึ้นข้อผิดพลาดว่า<br /> <pre>Error Opening terminal: Bterm</pre><p>ให้ใช้คำสั่งว่า<br /> <code># export TERM=linux</code><br /> แล้วก็จะสามารถทำงานต่อจนจบได้ครับ</p></li> </ul> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/1">linux</a></div><div class="field-item odd"><a href="/taxonomy/term/2">ubuntu</a></div><div class="field-item even"><a href="/taxonomy/term/70">windows</a></div><div class="field-item odd"><a href="/taxonomy/term/71">grub</a></div></div></div> Sat, 21 Oct 2006 15:10:26 +0000 wd 56 at https://www.thaitux.info https://www.thaitux.info/node/56#comments ubuntu: ติดตั้งหลายระบบปฏิบัติการ https://www.thaitux.info/node/55 <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>ต้องการติดตั้งระบบปฏิบัติการ 3 ตัว โดยใช้ grub ของอูบุนตู<br /> WinMe : 10G<br /> WinXP : 15G<br /> Ubuntu: ที่เหลือ<br /> โดยให้เลือกบูตระบบใดระบบเดียว</p> <p>( หมายเหตุ<br /> 1 - ถ้าติดตั้งตามปกติ จะต้องลำดับ WinMe -&gt; WinXP -&gt; Linux<br /> แต่วิธีนี้ WinXP จะติดตั้งระบบจัดการบูตให้โดยอัตโนมัติ และ WinXP จะมองเห็น WinMe เป็นไดรฟ์ C: และ grub จะมองเห็นเพียง WinXP<br /> แต่กรณีนี้ เราไม่ต้องการให้ WinXP เห็น WinMe เป็นไดรฟ์ C: เพื่อป้องการการสับสนในการติดตั้งโปรแกรม และต้องการให้ grub เห็นระบบทุกระบบ เพื่อให้เราได้เลือกในตอนบูต<br /> 2 - อาจมีวิธีที่ดีกว่านี้ แต่การทดลองกินเวลามาก จึงทดลองแค่หยาบ ๆ ครับ<br /> 3 - ไม่สนับสนุนให้ใช้แผ่นผิดกฎหมายนะครับ )</p> <p>กระบวนการคือ แบ่งพาร์ติชั่น -&gt; ติดตั้ง WinXp -&gt; ติดตั้ง WinMe -&gt; ติดตั้งอูบุนตู</p> <h3>แบ่งพาร์ติชั่น</h3> <p>(โดยใช้ fdisk ของแผ่นติดตั้งอูบุนตู)<br /> เริ่มด้วยบูตแผ่น Ubuntu Live CD แต่ยังไม่ต้องติดตั้ง<br /> เปิด Terminal<br /> Application -&gt; Accessories -&gt; Terminal</p> <p><code>$ sudo su<br /> # fdisk /dev/hda</code></p> <p><u>P1.WinMe - Primary - Hidden Fat32 - 10G</u><br /> n -&gt; p -&gt; 1 -&gt; [DEFAULT] -&gt; +10G<br /> t -&gt; 1 -&gt; 1c</p> <p><u>P2.WinXp - Primary - NTFS - 15G</u><br /> n -&gt; p -&gt; 2 -&gt; [DEFAULT] -&gt; +15G<br /> t -&gt; 2 -&gt; 7</p> <p><u>P3.Extend</u><br /> n -&gt; e -&gt; 3 -&gt; [DEFAULT] -&gt; [DEFAULT]</p> <p><u>P5.Linux/boot - 100M</u><br /> n -&gt; l -&gt; [DEFAULT] -&gt; +100M</p> <p><u>P6.Linux/swap - 512M</u><br /> n -&gt; l -&gt; [DEFAULT] -&gt; +512M<br /> t -&gt; 6 -&gt; 82</p> <p><u>P7.Linux/boot - Full</u><br /> n -&gt; l -&gt; [DEFAULT] -&gt; [DEFAULT]</p> <p>Write<br /> <code>w</code></p> <h3>ติดตั้ง WinXP</h3> <p>บูตแผ่นติดตั้ง WinXP โดยเลือกติดตั้งลงบนพาร์ติชั่นที่ 2<br /> ทำจนจบ</p> <h3>ติดตั้ง WinMe</h3> <p>เริ่มด้วยบูตด้วยแผ่น Ubuntu Live CD ใช้ fdisk เหมือนเดิม แก้พาร์ติชั่นแรกให้เป็น FAT32<br /> <code>$ sudo su<br /> # fdisk /dev/hda</code></p> <p>t -&gt; 1 -&gt; c</p> <p>Write<br /> <code>w</code></p> <p># mkfs.vfat /dev/hda1</p> <p>ต่อด้วยบูตแผ่นติดตั้ง WinMe (ต้องฟอร์แมตไดรฟ์ C: ใหม่ด้วย)<br /> ติดตั้งบนพาร์ติชั่นแรกจนจบ</p> <h3>ติดตั้งอูบุนตู</h3> <p>บูตด้วยแผ่น Ubuntu Live CD ติดตั้งตามปกติ ลงบนพาร์ติชั่นที่ 7<br /> ( /boot เป็น /dev/hda5, swap เป็น /dev/hda6 และ / เป็น /dev/hda7 )</p> <h3>ปรับแต่ง grub</h3> <p><code>$ sudo vi /boot/grub/menu.lst</code><br /> ไปที่ท้ายไฟล์ ตรงช่วง Windows ME และ Windows XP เติมคำสั่ง hide และ unhide ลงไป</p> <pre> # This entry automatically added by the Debian installer for a non-linux OS # on /dev/hda1 title Windows 95/98/Me <strong>hide (hd0,1) unhide (hd0,0)</strong> root (hd0,0) savedefault makeactive chainloader +1 # This entry automatically added by the Debian installer for a non-linux OS # on /dev/hda2 title Microsoft Windows XP Professional <strong>hide (hd0,0) unhide (hd0,1)</strong> root (hd0,1) savedefault makeactive chainloader +1 </pre><p> เสร็จแล้ว</p> <p>ดัดแปลงมาจาก <a>Multiboot with GRUB Mini-HOWTO</a></p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/taxonomy/term/2">ubuntu</a></div><div class="field-item odd"><a href="/taxonomy/term/70">windows</a></div><div class="field-item even"><a href="/taxonomy/term/71">grub</a></div></div></div> Fri, 20 Oct 2006 11:07:06 +0000 wd 55 at https://www.thaitux.info https://www.thaitux.info/node/55#comments