จาก EeeUser wiki
http://wiki.eeeuser.com/xandrosbootfromusb/dev/sdb หมายถึง built-in card reader
/dev/sdc หมายถึง usb flash drive ในที่นี้จะติดตั้งที่ sd card
1. เปลี่ยนเป็น root
sudo bash
2. copy xandros image P701L.gz จาก dvd ไปไว้ที่ sd card (/dev/sdb1)
umount /dev/sdb1
gunzip -c [Path to]/P701L.gz | dd of=/dev/sdb
**ผมใช้ Midnight Commander ย้ายไปที่ซับ data ของ dvd แล้วสั่ง
gunzip -c P701L.gz | dd of=/dev/sdb
(แบบว่า โง่ คำสั่ง linux อ่ะ)
3. สร้างพาร์ทิชันใหม่ บนพื้นที่ที่เหลือบน sd ( /dev/sdb2)
cfdisk /dev/sdb
เลือก New > Primary > Enter > Write > “yes” > Quit
4. ฟอร์แมทพาร์ทิชัน /dev/sdb2 เป็น ext3 filesystem ใช้ชื่อว่า "USER"
mke2fs -c /dev/sdb2
tune2fs -j /dev/sdb2
e2label /dev/sdb2 USER
5. Mount /dev/sdb1 แตกอิมเมจไฟล์ initramfs ไว้ใน temp dir ที่สร้างขึ้นใหม่
mkdir /mnt/sdb1
mount -t ext2 /dev/sdb1 /mnt/sdb1
cd /mnt/sdb1/boot
mkdir temp
cd temp
gunzip < ../initramfs-eeepc.img | cpio -i
6. แก้ไฟล์ “init” ให้โหลด USB modules ตอนบูต
kwrite init
เติมข้อความต่อไปนี้ไว้ที่บรรทัดแรก
#!/bin/sh
mount -t proc proc /proc
#load USB modules - this won't work unless you have
#copied them into the image
echo loading USB modules
insmod -f /modules/usbcore.ko
insmod -f /modules/ehci-hcd.ko
insmod -f /modules/uhci-hcd.ko
insmod -f /modules/libusual.ko
insmod -f /modules/usb-storage.ko
#need time to register things
sleep 6
และแก้ข้อความ “sda1” และ “sda2” ให้เป็น “sdb1” และ “sdb2” ทั้งหมด
7. copy USB modules จาก
/lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/
มาไว้ที่ซับ
/mnt/sdb1/boot/temp/modules/2.6.21.4-eeepc/kernel/drivers/usb/
ถ้าไม่ชำนาญคำสั่ง linux แนะนำให้ใช้ File Manager
sudo /usr/bin/XandrosFileManager -caption File Manager -maximized
8. สร้าง device sdb1 and sdb2 ในซับ /dev ใน temp dir
cd /mnt/sdb1/boot/temp/dev
mknod -m 644 sdb1 b 8 17
mknod -m 644 sdb2 b 8 18
mknod -m 644 sdc1 b 8 33
mknod -m 644 sdc2 b 8 34 **(สองบรรทัดหลัง สำหรับ USB flash drive)
9. บีบไฟล์ไปไว้ที่ initramfs image:
cd /mnt/sdb1/boot/temp
find | cpio -H newc -o | gzip -9 > ../initramfs-usb-eeepc.img
10. แก้ไขไฟล์ scanuser.sh
kwrite /mnt/sdb1/sbin/scanuser.sh
แก้ ”/dev/sda2” เป็น ”/dev/sdb2” ทั้งหมด
11) แก้ไขไฟล์ formatuser.sh เหมือน ข้อ 10
kwrite /mnt/sdb1/sbin/formatuser.sh
แก้ ”/dev/sda2” เป็น ”/dev/sdb2” ทั้งหมด
12. แก้ไขไฟล์ /usr/sbin/services.sh (Optional):
kwrite /mnt/sdb1/usr/sbin/services.sh
As you can see, this script is loading the USB modules again which is of course a waste of time. So you can comment these lines:
#modprobe uhci-hcd
#modprobe ehci-hcd
#modprobe usb-storage
13. แก้ grub boot menu เพื่อแก้ root เป็น /dev/sdb1
kwrite /mnt/sdb1/boot/grub/menu.lst
แก้ข้อความดังนี้
root (0×80,0) –> root (hd0,0)
root=/dev/sda1 –> root=/dev/sdb1
initramfs-eeepc.img –> initramfs-usb-eeepc.img
14. รีสตาร์ทเครื่อง กด [Esc] และเลือก "USB: USB2.0 Card Reader SD0" เพื่อบูตจาก sd
http://forum.eeeuser.com/viewtopic.php?id=4496http://forum.eeeuser.com/viewtopic.php?id=7296http://forum.eeeuser.com/viewtopic.php?id=7156