Cách tạo một hệ thống trực tiếp trên ổ đĩa USB với những thay đổi liên tục trên đĩa / hdd


10

Tôi đã cố gắng cài đặt Ubuntu trực tiếp trên ổ đĩa USB với những thay đổi liên tục. Tuy nhiên tôi muốn viết các thay đổi vào ổ cứng thay vì USB vì nhiều lý do (Hiệu suất, Dung lượng).

Tôi phát hiện ra rằng các thay đổi được xử lý trong một tệp có hệ thống tệp ext3 được gắn bởi hệ thống (casper-rw). Nhưng nó dường như được tự động phát hiện trên ổ đĩa flash khi khởi động.

Làm cách nào tôi có thể tạo tệp casper-rw mới trên ổ cứng và định tuyến lại hệ thống trực tiếp Ubuntu trên ổ USB sang ổ cứng?

chỉnh sửa 2015/07/14:

Cảm ơn bạn cho câu trả lời cho đến nay. Chúng rất thú vị và giúp ích rất nhiều để hiểu cơ chế của "tính năng lưu liên tục hệ thống trực tiếp" tốt hơn và hiển thị các phương pháp tốt để giải quyết vấn đề. Thật không may, tôi đã cố gắng khắc phục một số hạn chế mà tôi có trong đầu khi đặt câu hỏi liên quan đến quyền truy cập vào hệ thống máy chủ và / hoặc quyền truy cập vào phần cứng mới, tôi không nói rõ (xin lỗi vì điều đó).

Nếu phân vùng là một tùy chọn, tôi nghĩ rằng câu trả lời được nêu ở đây là rất tốt, vì nó chỉ yêu cầu bạn tạo một phân vùng mới, gắn nhãn casper-rw và bạn đã hoàn thành (công việc rất tuyệt, tôi đã thử nghiệm nó).

Nếu mua phần cứng mới là một tùy chọn, USB3.0 Flash-Drive (MLC hoặc SLC), ổ cứng di động, eSATA và các tùy chọn khác xuất hiện có hiệu suất tốt hơn nhiều so với ổ flash USB2.0 trung bình.

Vì vậy, tôi đã tự hỏi nếu có một cách chỉ để tạo một tệp casper-rw thay vì một phân vùng trên đĩa có quyền truy cập hạn chế (hoặc sao chép / liên kết tệp trên ổ đĩa flash).

Bằng cách này, thật dễ dàng chỉ cần sao chép tệp casper-rw trở lại ổ đĩa flash và sử dụng lại từ đó hoặc chuyển nó sang một máy tính khác, mang lại sự linh hoạt cao, thay đổi tối thiểu cho ổ cứng và dễ dàng loại bỏ các thay đổi được thực hiện hệ thống.


Không chắc đây có phải là một tùy chọn không, nhưng nếu bạn chỉ cần lưu dữ liệu, bạn cũng có thể chỉ cần gắn phân vùng ổ cứng vào một nơi nào đó vào cây hệ thống tệp trực tiếp của mình ... Mặc dù vậy, bạn chỉ có các thư mục cụ thể nằm trên đĩa.
Chỉ huy Byte

@ByteCommander cảm ơn bạn đã bình luận. Thật không may, phân vùng ổ cứng không phải là một lựa chọn cho tôi và tôi muốn mọi thứ phải gọn nhất có thể để tôi có thể xóa dữ liệu nhanh chóng và đơn giản, vì vậy một tệp duy nhất trên ổ cứng sẽ rất lý tưởng.
LS

Cũng có thể gắn một tệp chứa hình ảnh của một hệ thống tệp (ví dụ: .iso hoặc .img, có thể nhiều hơn). Thật không may, tôi chưa bao giờ làm điều này và không thể cho bạn biết làm thế nào ...
Chỉ huy Byte

Làm thế nào để bạn biết điều này không hoạt động? Là tập tin của bạn có tên casper-rw ? Có phải nó ở gốc của phân vùng của bạn ? Tôi đã thực hiện điều đó (sử dụng kiên trì trên ổ cứng với phân vùng có nhãn casper-rw) và tôi không nhớ thêm bất kỳ bước cần thiết nào.
solsTiCe

Chỉnh sửa mới nhất của bạn làm cho câu hỏi của bạn quá cụ thể để được sử dụng rộng rãi (mà câu trả lời của tôi là ...) Không phải là không thể, nhưng có nghĩa là tạo tập lệnh và quy tắc udev thành [unmount] - [đồng bộ hóa với HDD] - [mount] khi chèn và [đồng bộ hóa với ổ cứng] khi chưa kết nối, nhưng đó là rất nhiều công việc và không thực sự phù hợp cho một trang web Hỏi & Đáp như trang này.
Fabby

Câu trả lời:


4

Bạn có thể dễ dàng đặt hệ thống tệp có thể ghi (trong tệp casper-rw) cho phương tiện truyền thông trực tiếp vào đĩa cứng. Hạn chế là tệp casper-rw phải đi trên phân vùng FAT. Các máy mới hơn (UEFI) đều có phân vùng FAT EFI, nhưng thường quá nhỏ để chứa tệp casper-rw 1G-4G. Trên một phân vùng FAT đủ lớn khác, bạn có thể tạo các thư mục, mỗi thư mục chứa một tệp casper-rw cho các phương tiện truyền thông trực tiếp khác nhau. Giả sử sda11 là 10G và có hệ thống tệp 10G FAT, được gắn tại / mnt / sda11, trên đó có các thư mục / A, / B, / C, / D và / E. Giả sử chúng tôi sẽ sử dụng / A cho phương tiện truyền thông liên tục của chúng tôi, đặt casper-rw ở đó.

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

Lấy phương tiện truyền thông trực tiếp của bạn được tạo với sự kiên trì và chỉnh sửa tệp /boot/grub/grub.cfg và tệp /syslinux/txt.cfg, thêm vào sau từ "kiên trì"

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

Đó là nó. Bạn thậm chí không cần đổi tên / xóa tệp casper-rw trên phương tiện USB.


Nếu có chỗ trên phương tiện USB, bạn thậm chí có thể sao chép casper-rw của đĩa cứng trở lại USB và mang theo các thay đổi của bạn.


Đường dẫn liên tục không cho phép bất kỳ tham chiếu đĩa rõ ràng nào, do đó, phải là duy nhất trên tất cả các phân vùng FAT. Đã thử nghiệm với 1 hoặc 2 phân vùng FAT (một là phân vùng EFI). Sẽ không hoạt động trên hệ thống tập tin ext2 hoặc ntfs thay vì FAT. Nếu bạn cũng thêm từ "toram" trên cùng một dòng với "dai dẳng", hệ thống tệp nén của bạn trên USB chậm sẽ được sao chép vào ram và cho hiệu suất tốt hơn nhiều, tuy nhiên, dường như có vấn đề tắt máy, với phân vùng FAT không được dọn dẹp sạch sẽ (điều này dường như không gây ra vấn đề gì nhưng ...)


Cảm ơn. Điều đó làm cho mọi thứ rõ ràng hơn nhiều. Tôi giả sử rằng ở trạng thái khởi động, ntfs không thể được nhận ra (phải không?) Do đó không thể có casper-rw trên phân vùng ntfs. Vì vậy, tôi nghĩ rằng tôi sẽ đi với phân vùng ext4 có nhãn casper-rw hoặc thử một số công cụ "toram" hoặc ramdrive.
LS

Làm thế nào để bạn sửa đổi grub.cfghoặc syslinux.txtcho rằng bạn chỉ có thể gắn phương tiện truyền thông trực tiếp chỉ đọc vì nó là một iso ??
solsTiCe

Ở trên đã sử dụng ISO để tạo USB phương tiện trực tiếp, trên đó các tệp có thể ghi được. Khởi động trực tiếp ISO (ví dụ: tắt đĩa cứng) sử dụng một grub hoàn toàn riêng biệt (cái trên đĩa cứng) có tệp có thể chỉnh sửa - trường hợp này hoàn toàn không sử dụng cơ chế khởi động từ ISO.
ubfan1

7

Điều đó cực kỳ dễ dàng nếu bạn sử dụng thiết lập sau:

  1. Cài đặt Ubuntu trên thanh USB SLC (ưu tiên USB 3.0 nếu phần cứng của bạn hỗ trợ nó) mà không cần bất kỳ công cụ casper nào (chỉ là cài đặt bình thường, coi thanh USB là ổ SSD.)

    Tại sao? Các SLC đắt gấp đôi so với MLC nhưng chúng nhanh hơn 4 lần và kéo dài hơn 8 *! Vì vậy, chúng thực sự là ổ SSD nhỏ trên một cây gậy!

  2. Tối ưu hóa hệ thống và coi thanh USB là một ổ SSD nhỏ, vì vậy:

    Trong /etc/sysctl.confphần thêm của bạn :

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    Trong /etc/fstabphần thêm các thông số in đậm vào dòng USB khởi động của bạn. (Có thể là sdchoặc sdd. Dưới đây là một ví dụ, sử dụng UID nếu có thể)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. tạo 2 người dùng: một người dùng quản trị có thư mục chính trên thẻ nhớ USB nhưng có rất ít tệp và một người dùng bình thường sẽ có thư mục chính trên ổ cứng.

  4. Chỉ bây giờ chèn ổ cứng và thêm thông tin ổ cứng cần thiết vào fstabđể tự động gắn ổ cứng và thêm các tham số sau:

    nobootwait,nofail

    để cho phép khởi động ngay cả khi không có ổ cứng (Nếu đúng như vậy, chỉ người dùng quản trị mới có quyền truy cập, không phải người dùng bình thường)

  5. Bây giờ hãy đăng nhập với tư cách là người dùng quản trị và chuyển thư mục chính cho người dùng bình thường từ thanh USB sang ổ cứng:

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

Nếu tất cả đều ổn:

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

Làm xong! :-)

Đối với bản ghi: Tôi có một thanh USB 2.0 MLC 16 GB giống như thế này (quá đủ cho trường hợp sử dụng của tôi và không quá đắt và hiện tại nó đã khoảng 5 tuổi và vẫn đang chạy!)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.