User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 1 của 1

Chủ đề: Di chuyển phân vùng cài đặt Linux sang phân vùng hoặc ổ đĩa khác

  1. #1
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định Di chuyển phân vùng cài đặt Linux sang phân vùng hoặc ổ đĩa khác

    Lưu ý: Bài viết này được tôi thử nghiệm trên Debian và Ubuntu thành công nên các hệ thống Linux sử dụng Grub làm Bootloader đều có thể áp dụng tương tự .

    I. Mở đầu

    Đôi khi trong quá trình sử dụng Linux bạn sẽ có ý định chuyển phân vùng cài đặt của Linux sang một phân vùng khác hoặc ổ đĩa khác. Có thể là phân vùng hoặc ổ đĩa hiện tại có dung lượng không đủ cho nhu cầu sắp tới của bạn, hoặc có thể bạn muốn di chuyển phân vùng cài đặt Linux ra phía rìa ngoài của đĩa cứng nhằm tăng tốc độ đọc/ghi phân vùng đó http://vi.wikipedia.org/wiki/%E1%BB%...28Partition.29).

    Về cơ bản, mọi thứ trên Linux/Unix đều là file http://www.linux.org/article/view/in...hing-is-a-file), do vậy, chúng ta có thể hình dung được rằng để di chuyển phân vùng cài đặt Linux sang nơi khác thì đơn giản chỉ cần copy toàn bộ thư mục root (/) của nó sang vị trí mới, sau đó chỉ cần cài lại Grub và chỉnh sửa file /etc/fstab là được.

    II. Các bước thực hiện

    Lý thuyết đã có rồi, bây giờ chúng ta bắt tay vào thực hiện:

    Bước 1: Chuẩn bị một Live CD hoặc Live USB

    Tại sao vậy? Trong quá trình chuyển có thể gặp một số lỗi (do người thực hiện áp dụng không đúng cách hoặc do bạn đọc bài viết này sau 10 năm kể từ ngày nó được viết khiến nó quá lỗi thời) khiến hệ thống không thể khởi động được. Khi đó bạn có thể sử dụng một Live CD hoặc Live USB để boot vào và sửa lỗi.

    Khuyến cáo bạn nên tạo Live CD, USB từ Ubuntu và Linux Mint vì nó chứa sẵn công cụ phân vùng Gparted (không biết các distro khác có thế không).

    Lưu ý là các bước trong bài viết này các bạn làm trên hệ thống hiện tại, Live CD, USB chỉ sử dụng khi bạn gặp lỗi nào đó và không boot được vào hệ thống thôi.

    Bước 2: Tạo phân vùng mới để chứa thư mục root


    Để tạo một vân vùng mới thì có nhiều cách. Đơn giản nhất là sử dụng công cụ phân vùng có giao diện đồ họa như Gparted, công cụ này được cài đặt sẵn nếu bạn tạo Live CD và USB từ Ubuntu hoặc Linux Mint.

    Một cách khác là sử dụng fdisk, cách phân vùng với fdisk các bạn có thể đọc ở bài viết này http://www.tldp.org/HOWTO/Partition/...titioning.html. Nó thật sự không quá khó nhưng tốt nhất bạn nên cẩn thận vì thao tác phân vùng luôn luôn tiềm ẩn rủi ro.

    Bước 3: Sao chép root sang phân vùng mới

    Để dễ hình dung, tôi ví dụ hiện trạng phân vùng của đĩa như sau:

    sda disk
    ├─sda1 part --> phân vùng bạn vừa tạo và muốn chuyển đến
    ├─sda2 part swap
    ├─sda3 part / --> phân vùng chứa thư mục / hiện tại
    >_




    Bây giờ, gõ lệnh sau để format phân vùng sda1 với hệ thống file EXT3 (lưu ý là nếu phân vùng cũ là EXT2 hoặc EXT4 thì bạn không format với EXT3 mà phải format với file system tương ứng):

    # mkfs.ext3 /dev/sda1
    >_



    Tiếp theo, mount phân vùng sda1 vào:

    # mkdir /mnt/newroot
    # mount /dev/sda1 /mnt/newroot
    >_


    Bây giờ copy toàn bộ nội dung phân vùng / sang phân vùng mới:

    # cp -ax / /mnt/newroot
    >_


    Xem thêm về lệnh copy tại đây http://tldp.org/HOWTO/Hard-Disk-Upgrade/copy.html.

    Bước 4: Sửa lại file /etc/fstab

    Làm theo các lệnh sau:

    # cd /mnt/newroot
    # vi etc/fstab
    >_


    Tìm đến dòng định nghĩa mount point của phân vùng / (lưu ý là chuỗi UUID có thể khác trên máy bạn):

    Mã:
    UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 / ext3 noatime,errors=remount-ro 0 1
    hoặc

    Mã:
    /dev/sda3 / ext3 noatime,errors=remount-ro 0 1
    sửa lại thành
    Mã:
    /dev/sda1 / ext3 noatime,errors=remount-ro 0 1
    Bạn cũng có thể sử dụng UUID thay vì /dev/sda1, cách kiểm tra UUID của các phân vùng các bạn gõ lệnh sau:

    # blkid
    >_


    Bước 5: Cài lại Grub

    Cách 1: Cài trực tiếp luôn (nếu không được thì các bạn dùng cách 2)

    Gõ lệnh sau để cài lại Grub:

    # grub-install --root-directory=/mnt/newroot /dev/sda
    >_


    Cách 2: Change root (chroot) rồi cài

    Mount các thư mục ảo vào thư mục root mới:

    # mount -o bind /dev /mnt/newroot/dev
    # mount -t proc none /mnt/newroot/proc
    # mount -t sysfs none /mnt/newroot/sys
    >_


    Tiến hành chroot (change root):

    # chroot /mnt/newroot
    >_


    Cài lại grub:

    # grub-install /dev/sda
    >_


    Update grub (nếu cần):

    # update-grub
    >_


    Nếu không có thông báo lỗi nào thì có nghĩa là bạn đã thành công.

    Exit ra và khởi động lại máy:

    # exit
    # reboot
    >_


    Bước 6: Sửa một số thứ (nếu có)

    Trong quá trình bạn tạo phân vùng mới hoặc xóa phân vùng cũ có thể dẫn đến việc các phân vùng được đánh số lại. Ví dụ lúc trước phân vùng swap của bạn là sda2, nhưng sau khi phân vùng thì nó là sda3 chẳng hạn, khi đó bạn cần sửa lại file /etc/fstab cho phù hợp.

    Trường hợp tương tự cũng xảy ra nếu các thư mục như /home, /boot được đặt ở phân vùng riêng.

    III. Các lỗi và câu hỏi thường gặp


    1. Tôi không thể boot vào hệ thống, có lỗi gì đó liên quan đến Grub

    Bạn hãy boot vào bằng Live CD hoặc Live USB rồi cài lại Grub.

    Cách cài lại không khó, bạn có thể cài đặt công cụ có giao diện đồ họa Boot Repair https://help.ubuntu.com/community/Boot-Repair) và sửa một cách hoàn toàn tự động.

    Hoặc có thể cài lại bằng cách làm như sau:

    - Mount phân vùng chứa thư mục root của hệ thống (ví dụ nó đang ở sda1):

    # mkdir /mnt/myroot
    # mount /dev/sda1 /mnt/myroot
    >_


    - Mount thư mục /boot nếu bạn đặt /boot ở phân vùng khác

    - Cài lại Grub:

    # grub-install --root-directory=/mnt/myroot /dev/sda
    >_


    2. Tôi khởi động được nhưng có thông báo không mount được thư mục /home, sau đó thì tôi cũng không đăng nhập được

    Tình trạng này xảy ra khi thư mục /home của bạn đặt ở phân vùng khác và do phân vùng đó được đánh số lại nên nó không mount được.

    Để xử lý lỗi này, bạn bấm Ctrl+Alt+F1 rồi đăng nhập ở chế độ dòng lệnh. Sau đó gõ lệnh sau để sửa file /etc/fstab:

    # vi /etc/fstab
    >_


    Tìm đến dòng định nghĩa mount cho thư mục /home và sửa lại cho đúng.

    Sau đó mount lại thư mục /home:

    # mount /home
    >_


    Bấm Ctrl+Alt+F7 rồi đăng nhập bình thường.

    Chúc vui vẻ.

    Xem bài gốc có style đẹp hơn tại đây.

    -1973
    Contact me:
    Email: sangnd [at] svBK.vn
    Personal website: My Blog | Chat với người lạ
    Facebook Page của Bách Khoa Forum: http://www.facebook.com/svbk.vn

  2. Có 2 thành viên cảm ơn bài viết của 1973 có chất lượng:


+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube