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
và
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 PromptNế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
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 CawleyTheo 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ý