Phân vùng khởi động có thể có một mối quan hệ một đến nhiều với phân vùng gốc? Bao nhiêu phân vùng khởi động phụ thuộc vào những cái gốc?


1

Tôi đang thực hiện một dự án trên Raspberry Pi của mình, nơi tôi đang cố gắng để phân vùng gốc của mình tồn tại trên một ổ đĩa ngón tay cái. Nhiều ổ ngón tay cái, thực sự. Vì vậy, tất cả những gì tôi phải làm để đi từ không gian làm việc này sang không gian làm việc khác là cắm USB mới và khởi động lại.

Nhưng điều này thực sự chỉ có thể hoạt động nếu phân vùng khởi động hiếm khi thay đổi và không biết nhiều về phân vùng gốc hơn là cách khởi động HĐH.

Có thể làm việc này? Có phải các phân vùng khởi động chỉ quan tâm đến một vài phần gốc đơn giản mà có thể dễ dàng giữ giống nhau cho tất cả, hoặc cả hai tiến hóa cùng nhau và trở nên vướng mắc?

Tôi đang chạy Raspian và dự định sẽ có nhiều phiên bản của hệ thống gốc cho tất cả được sử dụng (cùng một lúc) bởi cùng một khởi động.


Vì vậy, về cơ bản bạn có nghĩa là bạn muốn tạo một ổ USB có khả năng khởi động? Hay cái gì khác?
JakeGould

1
Vâng, vâng, điều đó sẽ tốt hơn, nhưng đó không phải là điều có thể làm được trên Pi. Những gì tôi có thể làm là tạo một SD có thể khởi động được phân vùng gốc từ USB.
Seph Reed

Và sau đó từ đó tôi có thể tạo ra rất nhiều phiên bản root khác nhau làm những việc khác nhau trong khi tất cả đều dựa trên cùng một nền tảng (Raspian trong trường hợp này)
Seph Reed

Hiểu rồi. Hy vọng người khác có thể đi cùng một câu trả lời. Đối với địa ngục của nó, có thể hữu ích để chỉnh sửa câu hỏi của bạn để cho biết bản phân phối Linux tương thích Raspberry Pi mà bạn đang nghĩ về việc sử dụng. Hoặc nếu bạn cởi mở với các ý tưởng, hãy thêm nó vào.
JakeGould

1
Có lẽ. Tôi đã hy vọng rằng điều này ít nhiều độc lập với bất kỳ bản phân phối nào. Tôi hy vọng rằng các hệ thống khởi động theo định nghĩa độc lập với HĐH ngoại trừ cách khởi tạo nó, mà loại internet nói rằng chúng là, nhưng không rõ ràng.
Seph Reed

Câu trả lời:


1

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/boot/cmdline.txtlà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.

  1. 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).

  2. 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.

  3. Bằng cách sử dụng lệnh, mountchú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.

  4. 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.

  5. 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 /mntkhô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 /mntvà thử lại.

  6. 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.

  7. 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

  1. 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.

  2. 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 nanovà ở 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 /bootphâ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 .


1
Vâng, điều này hoàn toàn hữu ích. Bạn có thể thêm liên kết này raspberrypi.org/forums/viewtopic.php?f=29&t=44177 vào câu trả lời của bạn cho những người tìm kiếm trong tương lai. Tôi vẫn còn một chút do dự về việc khởi động có bất kỳ phụ thuộc nào khác vào root hay không, nhưng tôi có thể chạy một số thử nghiệm và xác minh nó vào cuối ngày. Cảm ơn bạn!
Seph Reed

Tôi nghĩ rằng nếu bạn để lại bình luận của bạn ở đây, mọi người sẽ thấy nó nếu họ cần thêm thông tin về chủ đề này. Tôi rất vui vì tôi đã có thể giúp bạn và tôi sẵn sàng cải thiện câu trả lời của mình nếu có bất kỳ vấn đề nào sắp xảy ra.
comfreak
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.