• Thứ Ba, 16/12/2003 17:57 (GMT+7)

    Chạy HĐH không cần... ổ cứng

    THIẾT LẬP LINUX CHẠY TRÊN CD VÀ TRÊN CÙNG PARTITION VỚI WINDOWS 95-98

    Hiện nay việc cài đặt Linux vẫn còn là vấn đề khó khăn, nhất là khi máy tính đã cài Windows. Nhiều lúc người dùng khi phân vùng cho Linux lại vô tình làm mất hết dữ liệu sẵn có. Vậy có cách nào cài đặt Linux đơn giản hơn không? Liệu có thể cho Linux và Windows “sống” chung trên một phân vùng (partition) được không? Nếu thực hiện được điều này sẽ có ý nghĩa rất lớn trong việc học tập và nghiên cứu Linux mà không cần phải chú ý đến những gì Windows đã tạo lập trên đĩa cứng của bạn.

    Một người bạn của tôi, anh Steve Kiều - Việt kiều ở New Zealand, là một chuyên gia về Linux. Lần về nước gần đây anh có đem theo 1 đĩa CD Linux có thể chạy độc lập không cần ổ cứng với nhiều ứng dụng sẵn có trên đó. Đĩa này có thể cài vào cùng một partition với Windows 98 và chạy bình thường. Tôi có đề nghị anh viết bài để trao đổi kinh nghiệm. Do vốn tiếng Việt không nhiều nên anh đã hướng dẫn trực tiếp để tôi có thể làm việc đó thay anh.

    THỰC HIỆN

    Ở đây chúng ta có 2 phần việc: Một là thiết lập đĩa CD có thể khởi động (boot) chứa toàn bộ hệ thống Linux. Hai là cài đặt nó trên cùng partition với Windows.

    Công việc thứ nhất rất khó, tốn rất nhiều thời gian và đòi hỏi bạn phải khá thông thạo Linux. Công việc thứ hai đơn giản hơn nhiều, bạn chỉ mất khoảng 15’-20’ cho việc cài đặt vào đĩa cứng (phải còn trống hơn 1,2GB) trên cùng partion với Windows 95-98. Vấn đề ở đây là do dùng loadlin.exe chạy trên DOS “thực” nên môi trường Windows 95-98 mới thoả mãn.

    1. Xây dựng đĩa CD

    Trước hết bạn phải có một partition chạy Linux ổn định, dung lượng < 2GB (để tiện ghi vào CD sau này). Tiến hành đóng gói các folder trên root với lưu ý sau:

    • /home và /var phải đóng gói riêng, ví dụ nén lại thành home.tgz và var.tgz.

    • /etc chứa các file cấu hình phải đặt trong initrd.gz (file được đọc lúc khởi động).

    Đầu tiên ta phải đăng nhập vào root để có quyền “rw”, sau đó mount một ổ đĩa vật lý lên một điểm mount (yêu cầu >3GB) dùng để chứa thông tin trước khi ghi vào đĩa CD. Tạo một thư mục để thực hiện toàn bộ công việc trên đó, ví dụ là Linux. Sau đó tiến hành đóng gói với các lưu ý ở trên. Bạn có thể đóng bao nhiêu gói tuỳ thích sao cho có thể chứa được hết nội dung của hệ thống Linux đang dùng. Giả sử muốn đóng gói /usr/*, tôi sẽ dùng các lệnh như sau:

    cd  /diem/mount/một_thư_mục_ở_vùng_vật_lí.

    dd if=/dev/zero of=usrfs.u bs=1M count=1300

    {Chú ý: tuỳ thuộc vào dung lượng của /usr trên hệ thống của bạn mà chọn tham số count cho hợp lí}

    mke2fs -b 1024 usrfs.u

    mkdir 1

    mount -o loop usrfs.u 1

    cp -a /usr/* 1/

    {Đợi khá lâu, vài chục phút}

    umount 1

    mkdir 2

    mkzftree -F usrfs.u 2/usrfs

    {Đợi khá lâu, vài chục phút}

    Sau đó bạn sẽ có file usrfs trên đĩa cứng với tất cả thông tin của /usr.

    Theo tôi, tất cả các thông tin còn lại nên đóng vào một gói nữa thôi cho tiện, giả sử là rootfs, công việc tương tự như trên riêng đến lệnh cp thì thay bằng:

    cp -a /bin /sbin /lib 1/

    mkdir 1/tmp 1/proc 1/home ....

    Những việc này tuỳ thuộc vào hệ thống Linux của bạn. Chú ý là phải gói hết các thông tin trừ /etc sẽ đưa vào initrd.gz sau.

    Sau đó bạn cần tạo thêm 2 file để đĩa CD có thể boot được. Thứ nhất là file boot.dos, file này tạo như sau:

    Bạn đưa vào đĩa mềm khởi động Windows 95-98 ở chế độ DOS gồm cả chương trình MSCDEX để có thể đọc CD, và dùng lệnh:

    dd if=/dev/fd0 of=boot.dos bs=1k; sync

    mount -o loop boot.dos 1

    Sau đó vào tạo file autoexec.bat để có thể đọc được CD lúc mới khởi động và sửa những tham số tùy ý.

    Thứ hai là tạo file catalog bằng lệnh:

    dd if=/dev/zero of=boot.cat bs=1k count=2

    Điểm mấu chốt của quá trình này là tạo file cấu hình initrd, vẫn theo các cách như trên dùng lệnh dd, mke2fs, mount -o loop, sửa nội dung rồi mkzftree... Tuy nhiên quá trình này đòi hỏi bạn phải sửa các file cấu hình trong /etc, bạn cũng có thể tạo ra file cấu hình mới nhưng theo tôi nên sửa các file cũ trong /etc cho thích hợp. Đó là các file rc.0, rc.S, rc.6, rc.d....

    Với các file này bạn làm các việc sau:

    mount toàn bộ CD vào một điểm mount.

    • sau đó mount lần lượt các gói đã đóng tới những vị trí thích hợp.

    • tạo /dev từ kernel bằng devfs.

    • giải nén các file home.tgz và var.tgz vào vị trí thích hợp.

    Cần chú ý là chế độ mount các gói phải là -o loop. Sau đó nén initrd lại ở dạng gzip. Kiểm tra tất cả các file đã tạo xem chúng ở trong cùng một thư mục hay chưa, chép thêm vào đó loadlin.exe, kernel.... Đi đến thư mục đó và gõ lệnh:

    mkisofs -r -z -b boot.dos -c boot.cat -o /đường_dẫn_đến_thư_mục_đặt_CDimage/linuxcd.iso . (dấu chấm ở đây chỉ thư mục hiện thời).

    cdrecord dev=lun,bus,id linuxcd.iso

    {Nếu có CD Writer}

    Bây giờ bạn đã có đĩa CD chứa Linux. Khởi động máy với đĩa CD này. Dòng lệnh nạp Linux:

    loadlin {tên kernel} initrd=initrd.gz root=/dev/ram0 rw load_ramdisk=1 prompt_ramdisk=0

    Bạn sẽ chạy được phiên bản đã gói gọn trong đĩa CD.

    2. Cài đặt vào cùng partition với Windows 95-98

    Công việc này rất nhanh và dễ dàng. Bạn chọn một partition có dung lượng còn trống đủ lớn. Đầu tiên boot từ CD, sau đó gói toàn bộ CD vào một file linuxcd.iso bằng lệnh mkisofs, copy vào một thư mục trên partition bạn đã chọn cùng với các file kernel, loadlin.exe, initrd.gz. Giải nén initrd, sửa lại các file cấu hình cho phù hợp, rồi nén lại.

    Bây giờ ở dấu nhắc DOS chỉ cần gõ:

    loadlin {kernel} init=initrd.gz root=/dev/ram0 rw

    Chúc các bạn thành công.

    Cao Việt Hùng
    kieusnz@yahoo.co.nz
    herobk13@yahoo.com

    ID: A0308_96