Thứ Hai, 19 tháng 7, 2010

CÀI ĐẶT Ubuntu, Linux Mint, Ubuntu Studio... TỪ Ổ CỨNG

Tham khảo: https://help.ubuntu.com/community/Installation/FromLinux

Để cài đặt Distro Linux thuộc họ Ubuntu từ ổ cứng, yêu cầu phải có bộ tải khởi động GRUB, hoặc Grub4dos. Nếu máy bạn đang có 1 Distro Linux thì coi như là đã có GRUB (có 1 số ít ngoại lệ). Bài viết này đề cập đến trường hợp có GRUB.

Trước tiên, ta phải có file ISO cài đặt của hệ điều hành. Có 2 dạng file, dạng thứ 1 là Live CD, còn dạng thứ 2 là Install CD (Alternate).

Live CD gồm có Ubuntu Live CD, Linux Mint, Kubuntu Live CD, Xubuntu Live CD, Lubuntu Live CD...

Install CD gồm có Ubuntu Alternate CD, Ubuntu Studio, Kubuntu Alternate CD, Xubuntu Alternate CD...

(Tôi mới chỉ thử nghiệm với Ubuntu Live CD, Linux Mint và Ubuntu Alternate CD)


A. Đối với LIVE CD:

(Tham khảo cách Boot trực tiếp từ file ISO loại Live CD, của họ Ubuntu, với GRUB 2 tại đây: http://tutroc77.blogspot.com/2010/08/boot-tu-file-iso-loai-live-cd-cua-ho.html)

Nguyên lý: Trích xuất toàn bộ nội dung đĩa CD vào một phân vùng dạng Ext3 (Tôi chưa thử với Ext2 và Fat32). Sau đó khai báo cho Grub khởi động từ phân vùng này.


1- Tạo 2 thư mục tạm, ví dụ:

$ mkdir /tmp/iso
$ mkdir /tmp/hdd



2- Gắn kết file ISO, ví dụ:

$ sudo mount /đường_dẫn/ubuntu-10.04-desktop-amd64.iso -o loop /tmp/iso

Ví dụ với Linux Mint:

$ sudo mount /đường_dẫn/linuxmint-9-gnome-cd-i386.iso -o loop /tmp/iso


3- Gắn kết phân vùng Ext3 (Phân vùng để trống nhé), ví dụ:

$ sudo mount /dev/sda6 /tmp/hdd


4- Đồng bộ nội dung từ file ISO vào phân vùng Ext3, ví dụ:

$ sudo rsync -av /tmp/iso /tmp/hdd


5- Tháo gắn (UnMount) file ISO và phân vùng Ext3, ví dụ:

$ sudo umount /tmp/iso
$ sudo umount /tmp/hdd



6- Khai báo cho GRUB, (Như ví dụ bên trên thì phân vùng Ext3 là "/dev/sda6")

Lưu ý: File "initrd" nằm trong thư mục "casper" bên trong file ISO của Distro thuộc họ Ubuntu có 2 dạng

- Nếu thuộc dòng Ubuntu là "initrd.gz"
- Còn thuộc dòng Linux Mint là "initrd.lz"


Với Grub1, thêm mục khởi động sau vào file "/boot/grub/menu.lst"

title     Install Ubuntu-Mint-Live (on sda6)
root      (hd0,5)
kernel    /casper/vmlinuz boot=casper rw
initrd    /casper/initrd.gz (hoặc initrd.lz)


Dòng thứ 3 có thể viết đầy đủ hơn như sau:
kernel    /casper/vmlinuz boot=casper root=/dev/ram ramdisk_size=1048576 rw


Với Grub2, thêm mục khởi động sau vào file "/etc/grub.d/40-custom", rồi chạy lệnh cập nhật cho GRUB ($ sudo update-grub)

menuentry "Install Ubuntu-Mint-Live (on sda6)" {
     insmod ext2
     set root=(hd0,6)
     linux /casper/vmlinuz boot=casper rw
     initrd /casper/initrd.gz (hoặc initrd.lz)
}


Dòng thứ 4 có thể viết đầy đủ hơn như sau:
     linux /casper/vmlinuz boot=casper root=/dev/ram1 ramdisk_size=1048576 rw


(Với Ubuntu Live CD, tôi đã thử không cần copy toàn bộ nội dung file ISO, mà chỉ cần copy duy nhất thư mục "/casper" trong file ISO mà vẫn khởi động tốt)


B. Đối với INSTALL CD:

1- Tải 2 file "vmlinuz" và "initrd.gz" từ thư mục "/dists/tên_phiên_bản_ubuntu/main/installer-amd64/current/images/hd-media/" hoặc thư mục "/dists/tên_phiên_bản_ubuntu/main/installer-i386/current/images/hd-media/" (Tùy máy bạn là 32-bit hay 64-bit), trên một mirrors nào đó của Ubuntu.

Ví dụ, Ubuntu10.04 (tên mã là lucid) với mirrors "debian.nctu.edu.tw" thì 2 địa chỉ tương ứng là:

http://debian.nctu.edu.tw/ubuntu/dists/lucid/main/installer-i386/current/images/hd-media

và: http://debian.nctu.edu.tw/ubuntu/dists/lucid/main/installer-amd64/current/images/hd-media

(Tham khảo bài viết về mirrors: http://tutroc77.blogspot.com/2010/07/chon-mirror-may-chu-kho-phan-mem-tot.html)


2- Đặt 2 file nói trên vào một phân vùng Ext3 nào đó (Không cần thiết là phân vùng trống, tôi chưa thử với Ext2 và Fat32)

Ví dụ, tôi đặt 2 file trên vào thư mục "/boot/hd-media" trên phân vùng "/dev/sda6"


3- Đặt file ISO vào một phân vùng Ext3 nào đó (Không đặt trong thư mục; Không cần thiết là phân vùng trống; Tôi chưa thử với Ext2 và Fat32).


4- Khai báo cho GRUB:

Với Grub1, thêm mục khởi động sau vào file "/boot/grub/menu.lst"

title     Install Ubuntu-Alt CD (on sda6)
root      (hd0,5)
kernel    /install/vmlinuz rw
initrd    /install/initrd.gz


Dòng thứ 3 có thể viết đầy đủ hơn như sau:
kernel    /install/vmlinuz root=/dev/ram ramdisk_size=1048576 rw


Với Grub2, thêm mục khởi động sau vào file "/etc/grub.d/40-custom", rồi chạy lệnh cập nhật cho GRUB ($ sudo update-grub)

menuentry "Install Ubuntu-Alt CD (on sda6)" {
     insmod ext2
     set root=(hd0,6)
     linux /boot/hd-media/vmlinuz rw
     initrd /boot/hd-media/initrd.gz
}


Dòng thứ 4 có thể viết đầy đủ hơn như sau:
     linux /boot/hd-media/vmlinuz root=/dev/ram1 ramdisk_size=1048576 rw


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

Xem bài viết này và bình luận trên Ubuntu-VN: http://forum.ubuntu-vn.org/viewtopic.php?f=58&t=10777

4 nhận xét:

  1. Lưu ý: Khi cài từ file ISO trên ổ cứng có thể gặp lỗi lúc đang đọc file, khi đó chỉ cần restart lại

    Trả lờiXóa
  2. Lưu ý:

    File "initrd" nằm trong thư mục "casper" bên trong file ISO của Distro thuộc họ Ubuntu có 2 dạng

    - Nếu thuộc dòng Ubuntu là "initrd.gz"

    - Còn thuộc dòng Linux Mint là "initrd.lz"

    Trả lờiXóa
  3. anh cho em hỏi là bài này của anh cài từ ổ cứng,tới cái đoạn

    3- Gắn kết phân vùng Ext3 (Phân vùng để trống nhé), ví dụ:

    thì em không hiểu.

    em cài ubuntu vào phân vùng sda7,và giờ em muốn cài bản mới cũng vào phân vùng đó,thì em phải cài kiểu gì hả anh?

    làm tới đoạn
    3- Gắn kết phân vùng Ext3 (Phân vùng để trống nhé), ví dụ:

    em đành bó tay thôi.vì anh nói là phải để trống.
    vậy là bài viết này dùng trong trường hợp chạy 2 bản ubuntu song song à anh?

    anh có thể mail vào vanhai493@gmail.com cho em.thank anh!

    em đang tìm cách cài từ ổ cứng,đỡ phải dùng usb hay là burn đĩa.

    Trả lờiXóa
  4. Ubuntu là loại Live CD. Do đó, bạn nên làm theo cách này:

    http://tutroc77.blogspot.com/2010/08/boot-tu-file-iso-loai-live-cd-cua-ho.html

    (Boot từ file ISO loại Live CD, của họ Ubuntu, với GRUB 2)

    Trả lờiXóa