Cách tạo Raspberry Pi 3 khởi động từ USB

Cách tạo Raspberry Pi 3 khởi động từ USB

Raspberry Pi là một phần mềm tuyệt vời, linh hoạt, có khả năng thực hiện các dự án đa dạng như vận hành một trung tâm truyền thông để sử dụng như một đài phát thanh. Nhưng nó có một lỗ hổng rõ ràng: không có khả năng khởi động từ USB.





Vâng, cho đến bây giờ, đó là.





Nếu bạn đang sử dụng Raspberry Pi 3, bây giờ có thể bỏ qua việc khởi động từ thẻ nhớ microSD và thay vào đó khởi động máy tính từ thiết bị USB. Đây có thể là một thanh flash, một SSD với một bộ điều hợp USB hoặc thậm chí là một ổ đĩa cứng USB có kích thước đầy đủ. Đây là một bước phát triển đáng kể, vì vậy hãy xem cách bạn có thể thiết lập Raspberry Pi 3 của mình để khởi động từ USB.





Bắt đầu: Cài đặt Raspbian và Thêm tệp mới

Tốt nhất là bắt đầu dự án này với một bản sao mới của Raspbian, vì vậy hãy tải xuống phiên bản mới nhất (Đang sử dụng Raspbian Jessie ) và cài đặt nó theo cách thông thường . Ngay sau khi việc này được thực hiện, hãy tháo thẻ khỏi PC của bạn một cách an toàn, lắp thẻ vào Raspberry Pi đã tắt nguồn và khởi động, kết nối từ xa qua SSH ngay sau khi nó tải lên.

Đăng nhập (trừ khi bạn đã thay đổi thông tin đăng nhập mặc định của mình) rồi chạy các lệnh sau, lệnh này sẽ thay thế lệnh mặc định



start.elf

bootcode.bin

các tệp có các lựa chọn thay thế mới được tải xuống:





sudo apt-get update
sudo BRANCH=next rpi-update

Bản cập nhật này cung cấp hai tệp vào

/boot

danh mục. Với các tệp đã tải xuống, hãy tiếp tục bật chế độ khởi động USB với:





echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Lệnh này thêm vào

program_usb_boot_mode=1

hướng dẫn đến cuối

config.txt

tập tin.

Bạn sẽ cần khởi động lại Pi sau khi hoàn tất.

Bước tiếp theo là kiểm tra xem OTP - bộ nhớ lập trình dùng một lần - đã được thay đổi chưa. Kiểm tra điều này với:

vcgencmd otp_dump | grep 17:

Nếu kết quả là đại diện cho địa chỉ

0x3020000a

(nhu la

17:3020000a

) thì tất cả đều tốt cho đến nay. Ở giai đoạn này, nếu bạn muốn xóa

program_usb_boot_mode=1

dòng từ

config.txt

Điều này có thể dễ dàng thực hiện bằng cách chỉnh sửa

config.txt

trong nano:

sudo nano /boot/config.txt

Xóa hoặc nhận xét dòng tương ứng (với dấu # tiếp theo).

Chuẩn bị thiết bị khởi động USB của bạn

Tiếp theo, kết nối một thanh USB đã được định dạng (hoặc sẵn sàng xóa) vào một cổng dự phòng trên Raspberry Pi 3. Khi được cắm vào, chúng tôi sẽ tiến hành sao chép hệ điều hành.

Bắt đầu bằng cách xác định thẻ USB của bạn, với

lsblk

chỉ huy.

Trong ví dụ này, thẻ SD là

mmcblk0

trong khi thanh USB là

sda

(phân vùng được định dạng là

sda1

). Nếu bạn có các thiết bị lưu trữ USB khác được kết nối, thẻ USB có thể là sdb, sdc, v.v. Với tên thẻ USB của bạn đã được thiết lập, hãy ngắt kết nối đĩa và sử dụng công cụ parted để tạo phân vùng 100 MB (FAT32) và phân vùng Linux:

sudo umount /dev/sda
sudo parted /dev/sda

Tại lời nhắc (đã chia tay), hãy nhập:

mktable msdos

Bạn có thể được thông báo rằng đĩa đã được gắn vào. Nếu vậy, hãy chọn Phớt lờ , sau đó lưu ý cảnh báo hướng dẫn bạn rằng dữ liệu trên đĩa sẽ bị hủy. Như đã giải thích trước đó, đây phải là đĩa mà bạn hài lòng khi xóa hoặc định dạng, vì vậy hãy đồng ý với điều này.

Nếu bạn gặp phải bất kỳ sự cố nào ở đây, bạn có thể cần phải chuyển sang màn hình nền (theo cách thủ công, hoặc trên VNC ) và xác nhận đĩa đã được ngắt kết nối, trước khi nhập lệnh mktable msdos trong một dòng lệnh có cửa sổ.

Tiến hành từng phần như sau:

mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
print

Thao tác này sẽ xuất ra một số thông tin liên quan đến đĩa và các phân vùng mới. Tiến hành thoát từng phần bằng Ctrl + C, trước khi tạo hệ thống tệp khởi động và hệ thống tệp gốc:

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2

Sau đó, bạn cần phải gắn kết các hệ thống tệp đích, trước khi sao chép Hệ điều hành Raspbian hiện tại của bạn vào thiết bị USB.

sudo mkdir /mnt/target
sudo mount /dev/sda2 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sda1 /mnt/target/boot/
sudo apt-get update; sudo apt-get install rsync
sudo rsync -ax --progress / /boot /mnt/target

Lệnh cuối cùng đó là lệnh cuối cùng sao chép mọi thứ và do đó sẽ mất một lúc để hoàn thành. Đã đến lúc pha cà phê!

Tiếp theo, bạn cần làm mới các khóa máy chủ SSH để duy trì kết nối với Raspberry Pi được định cấu hình lại sau khi khởi động lại sắp xảy ra:

cd /mnt/target
sudo mount --bind /dev dev
sudo mount --bind /sys sys
sudo mount --bind /proc proc
sudo chroot /mnt/target
rm /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc

Lưu ý rằng sau sudo chroot (lệnh thứ năm ở trên), bạn đang chuyển sang root, vì vậy người dùng sẽ thay đổi từ pi @ raspberrypi đến root @ raspberrypi cho đến khi bạn nhập lối ra trên dòng 8.

Chuẩn bị khởi động lại từ USB!

Chỉ cần sắp xếp một số thứ nữa trước khi Raspberry Pi của bạn sẵn sàng khởi động từ USB. Chúng tôi cần chỉnh sửa

cmdline.txt

một lần nữa từ dòng lệnh với:

sudo sed -i 's,root=/dev/mmcblk0p2,root=/dev/sda2,' /mnt/target/boot/cmdline.txt

Tương tự, cần thực hiện thay đổi sau đối với fstab:

sudo sed -i 's,/dev/mmcblk0p,/dev/sda,' /mnt/target/etc/fstab

Sau đó, bạn đã sẵn sàng để ngắt kết nối các hệ thống tệp trước khi tắt Pi:

cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff

Lưu ý rằng điều này sử dụng

poweroff

lệnh thay thế cho

shutdown

.

Khi Pi đã tắt, hãy ngắt nguồn điện trước khi tháo thẻ SD. Tiếp theo, kết nối lại nguồn điện - Raspberry Pi của bạn bây giờ sẽ khởi động từ thiết bị USB! Và để được trợ giúp thêm về số Pi của bạn, hãy xem cách thiết lập Wi-Fi và Bluetooth trên Raspberry Pi 3 .

tạo tệp hàng loạt để chạy lệnh

Sẵn sàng để dùng thử Raspberry Pi 4 ? Kiểm tra các tính năng và thông số kỹ thuật của nó.

Đăng lại Đăng lại tiếng riu ríu E-mail Cách làm sạch PC Windows của bạn bằng Command Prompt

Nếu PC Windows của bạn sắp hết dung lượng lưu trữ, hãy dọn sạch rác bằng các tiện ích Command Prompt nhanh này.

Đọc tiếp
Chủ đề liên quan
  • DIY
  • USB
  • Raspberry Pi
Giới thiệu về tác giả Christian Cawley(Đã xuất bản 1510 bài báo)

Phó tổng biên tập về Bảo mật, Linux, Tự làm, Lập trình và Giải thích Công nghệ, và Nhà sản xuất Podcast Thực sự Hữu ích, có nhiều kinh nghiệm trong lĩnh vực hỗ trợ máy tính để bàn và phần mềm. Một người đóng góp cho tạp chí Định dạng Linux, Christian là một người mày mò Raspberry Pi, người yêu thích Lego và người hâm mộ trò chơi cổ điển.

Xem thêm từ Christian Cawley

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký
Thể LoạI Diy