Vâng, theo hiểu biết của tôi, điều này là hoàn toàn có thể!
Những gì bạn muốn làm là sao chép phân vùng gốc sang thẻ USB và sau đó thay đổi /etc/fstab
và /boot/cmdline.txt
làm cho nó khởi động từ ổ đĩa ngoài thay vì phân vùng thứ hai trên thẻ SD.
Nếu tìm thấy một hướng dẫn, nhưng tiếc là nó không phải bằng tiếng Anh, vì vậy tôi sẽ cố gắng giải thích quy trình bằng từ ngữ của riêng tôi.
Khởi động lại Pi với ổ đĩa ngoài duy nhất là thẻ nhớ USB (theo cách này chúng tôi tránh có các số ổ đĩa khác nhau trên mỗi lần khởi động, vì ID ổ đĩa duy nhất không thể thực hiện được nếu bạn muốn trao đổi các thanh USB sau).
Lấy số ổ đĩa thông qua sudo blkid
. Chỉ nên có một cái trông như thế này : /dev/sda1
.
Bằng cách sử dụng lệnh, mount
chúng ta có thể thấy nếu nó đã được tự động gắn kết. Nếu nó không được liệt kê, tiến hành bước tiếp theo. Nếu có, hãy chạy sudo umount /dev/sda1
(chính xác cho các số khác nhau, nếu chúng không giống nhau) để ngắt kết nối thanh USB.
Tiếp theo, chúng tôi muốn định dạng thanh USB để có hệ thống tệp chính xác cho phân vùng gốc Debian, tốt nhất là ext4
. Bạn có thể làm điều này bằng cách chạy lệnh : sudo mkfs.ext4 /dev/sda1
.
Sau này, chúng ta cần (gắn lại) thanh USB trên một vị trí tạm thời để sao chép qua phân vùng gốc từ thẻ SD. Chúng tôi làm điều này bằng cách chạy : sudo mount /dev/sda1 /mnt
. (Nếu lệnh phàn nàn về việc /mnt
không tồn tại, hãy tạo một thư mục có tên đó bằng cách chạy: sudo mkdir /mnt
và thử lại.
Bây giờ là lúc sao chép tất cả dữ liệu từ phân vùng gốc bằng cách trước tiên chuyển sang thư mục trên cùng với: cd /
và sau đó chạy tar-lệnh này : sudo tar cf - * --exclude /mnt/* | ( cd /mnt; sudo tar xfp -)
. Nó có thể không phải là giải pháp nhỏ gọn nhất nhưng nó làm việc cho tôi. Hãy nhớ rằng việc này có thể mất một lúc, tùy thuộc vào tốc độ của thẻ SD và ổ USB của bạn.
Tiếp theo, chúng ta cần thay đổi /etc/fstab
ổ chứa ổ đĩa được gắn khi khởi động bằng cách chạy sudo nano /mnt/etc/fstab
. ( Lưu ý rằng đây là trên thanh USB, vì chúng tôi đã thêm /mnt
. ) Bạn cần thay đổi các dòng tương ứng để làm cho chúng trông như thế này:
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/sda1 / ext4 defaults,noatime 0 0
Cuối cùng, chúng ta cần nói với phân vùng khởi động trên thẻ SD để khởi động từ ổ USB. Nhưng trước tiên, có lẽ nên tạo một bản sao lưu của tệp mà chúng ta sẽ thay đổi ngay bây giờ, trước khi chúng ta cam kết thực hiện chuyển đổi, bằng cách chạy : sudo cp /boot/cmdline.txt /boot/cmdline.txt.save
.
Chạy sudo nano /boot/cmdline.txt
để nhập nano
để thay đổi các tham số khởi động trên phân vùng đầu tiên của thẻ SD. Về cơ bản chúng ta cần thay đổi mục nhập cho phân vùng gốc vào ổ USB. Hướng dẫn cung cấp điều này để được nhập vào đó (1 dòng):
dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2
Bạn có thể đọc những gì các tham số có ý nghĩa ở đây .
Bây giờ lưu và thoát nano
và ở lần khởi động lại tiếp theo, Raspberry Pi của bạn sẽ khởi động từ thanh USB, nhưng tất nhiên thẻ SD vẫn được yêu cầu, như bạn đã đề cập.
Miễn là ổ USB là ổ đĩa duy nhất (ngoài thẻ SD) khi khởi động, điều này sẽ hoạt động. Bạn phải có một chút năng động và tôi không thấy bất kỳ cách nào khác để đề cập đến ổ đĩa ngoài việc sử dụng /dev/diskX
.
Chỉnh sửa: Tôi quên đề cập rằng bạn cần sao chép ổ USB sau khi hoàn thành hoặc thực hiện các bước tương tự với các cài đặt khác trên các ổ đĩa khác. Nếu phiên bản Raspian bao gồm các gói đã cài đặt hoàn toàn giống nhau, tôi không thấy bất kỳ lý do nào khiến việc này không hoạt động.
Các /boot
phân vùng là khá cơ bản và dòng tôi đã đề cập trong 9. cơ bản là tất cả nó. Nó chỉ cần đưa nó vào phân vùng chính xác với hệ thống tệp chính xác và nó sẽ hoạt động.
Tôi hy vọng điều này hữu ích cho bạn.
Đối với những người nói tiếng Đức, tôi sẽ để lại liên kết nguồn ở đây: Nguồn .