Bạn có thể đã nghe nói về Amazon Linux 2. Đây là một hệ điều hành AWS do Amazon phát triển. Nó được cung cấp miễn phí và bạn thậm chí còn nhận được các thiết bị máy ảo để thử nghiệm. Đó là những gì tôi đã làm, như tôi đã chỉ cho bạn trong bài viết của tôi về chủ đề này.
Một trở ngại mà tôi gặp phải trong quá trình thử nghiệm là đăng nhập. Thông thường, bạn sử dụng SSH để đăng nhập vào các phiên bản EC2 của mình. Nhưng bạn sử dụng cái gì cho một máy ảo ngoại tuyến cơ bản? Tôi không thể tìm thấy bất kỳ tổ hợp người dùng root/ec2 trực tuyến nào và phương pháp cố gắng thay đổi mật khẩu thông thường ở một chế độ không hoạt động. Do đó hướng dẫn này. Nó sẽ chỉ cho bạn cách thay đổi thông tin xác thực đăng nhập cho máy ảo Amazon Linux 2 theo cách thủ công để bạn có thể bắt đầu thử nghiệm. Theo tôi.
Lời nhắc đăng nhập
Vâng, tải hình ảnh. khởi động. Đăng nhập. Làm gì bây giờ?
Chế độ đơn
Người dùng Linux lâu năm sẽ nhớ thủ thuật này. Buộc hệ thống của bạn ở chế độ đơn, kể lại gốc dưới dạng có thể ghi, thay đổi mật khẩu, khởi động lại. Tất cả chúng ta đã làm điều này nhiều lần. Than ôi, không thể nữa.
Tôi đã cố gắng thêm init=/bin/bash vào các tùy chọn khởi động trong menu khởi động và hệ thống đã gặp sự cố kernel. Tôi không chắc đây có phải là thứ gì đó trong nhân hay không, thực tế là Amazon Linux sử dụng vinh quang systemd hay thứ gì khác, nhưng phương pháp cũ và đã được chứng minh không giúp được gì.
Đọc trực tuyến, ngoài hàng triệu mục nhập bin-bash không mang lại điều gì mới, tôi đã tìm thấy một bài viết chi tiết về cách thay đổi mật khẩu cho phiên bản RHEL 7. Hướng dẫn cũng đề cập đến khái niệm triết học hơn về thay đổi chuyển đổi từ RHEL 6 sang RHEL 7 và thực tế đây là một phần của kỳ thi RHCSA. Ý tôi là gì? Sự đơn giản đã biến mất ở đâu?
Dù sao đi nữa, tôi hứa với bạn một điều thú vị, nhưng như bài viết đã nêu, việc thêm rd.break vào dòng nhân có thể hữu ích và vì Amazon Linux 2 dựa trên RHEL, nên tôi nghĩ hãy làm điều đó. Chỉ có nó không làm gì cả. Amazon Linux vô tư khởi động bình thường. Điều này cũng không mang lại kết quả mong muốn.
Amazon có một đoạn văn rất ngắn và mơ hồ giải thích cách thực hiện việc này. Họ nói rằng bạn nên tạo ISO cấu hình khởi tạo trên đám mây, sau đó họ giới thiệu bạn đến tài liệu về nền tảng ảo hóa. Tôi e là không hữu ích lắm.
Gắn VDI theo cách thủ công
Chúng tôi đã nói về điều này trong quá khứ. Tôi đã chỉ cho bạn cách gắn các đĩa và phân vùng máy ảo làm thiết bị lặp lại, để bạn có thể chỉnh sửa nội dung hệ thống tệp. Chúng tôi đã sử dụng partx để sao chép các máy KVM. Chúng ta sẽ làm điều tương tự ở đây và tôi sẽ chỉ cho bạn một cách khác để gắn kết và trình bày các hệ thống tệp hình ảnh máy ảo.
Chúng tôi cần công cụ qemu-nbd, công cụ này thực hiện thủ thuật tương tự. Tiện ích này có sẵn như một phần của gói qemu-kvm trong hầu hết các bản phân phối, vì vậy bạn cài đặt nó. Sau đó, sử dụng công cụ. Nếu quá trình thực thi không thành công, bạn có thể cần tải mô-đun nbd (thiết bị khối mạng) vào bộ nhớ theo cách thủ công. Vì vậy, chuỗi lệnh (dưới dạng sudo hoặc root):
modprobe nbd
qemu-nbd -c /dev/nbd0
Xác định vị trí tải xuống hình ảnh vdi Amazon Linux 2 và ánh xạ nó vào lệnh trên. Bạn không nhất thiết phải sử dụng /dev/nbd0, bạn có thể sử dụng bất kỳ số nào, nhưng thao tác tuần tự sẽ dễ dàng và rõ ràng hơn.
Khi thiết bị khối đã được ánh xạ, bạn sẽ tìm thấy các phân vùng của nó trong /dev/nbd0p*. Các con số sẽ khớp với bố cục phân vùng đĩa cứng thực tế, chẳng hạn như p1, p2, v.v. Một lần nữa, điều này gần giống với những gì chúng tôi đã làm với partx. Bước tiếp theo là gắn phân vùng mong muốn vào đâu đó:
gắn kết /dev/nbd0pX /điểm gắn kết
Sau khi thực hiện xong lệnh này, giờ đây bạn có nội dung của hệ thống tệp vdi Amazon Linux 2 (phân vùng) được hiển thị bên dưới điểm gắn kết mong muốn của bạn (ví dụ:/mnt) và bây giờ chúng ta có thể thao tác với nó.
Chỉnh sửa tệp /etc/shadow
Bây giờ chúng tôi muốn thay đổi mật khẩu. Làm thế nào chúng ta sẽ làm điều này là như sau. Trên Linux gốc của chúng tôi, cái thực sự đang chạy máy ảo, hãy tạo một người dùng mới. Bạn có thể gọi nó là bất cứ điều gì bạn muốn. Hãy nói amazon. Tạo một mật khẩu. Mở tệp /etc/shadow. Bạn sẽ nhận thấy rằng mật khẩu được mã hóa và trình bày dưới dạng một hàm băm dài, ở giữa hai dấu hai chấm phân cách. Tuyệt quá. Đây là những gì chúng ta cần. Đại loại như:
amazon:$123456$dedoimedo:11111:0:99999:6:::
Giờ hãy điều hướng đến điểm gắn kết hệ thống tệp Amazon Linux 2 từ trước đó, giả sử /mnt và mở tệp bóng của nó trong trình soạn thảo văn bản:
Bạn sẽ nhận thấy rằng người dùng mặc định thực sự được gọi là người dùng ec2. Ngay cả khi bạn không biết điều này, bây giờ bạn làm. Nó cũng có một số băm ở đó cho mật khẩu. Tôi không biết nó là gì, và nó không quan trọng. Thay thế hàm băm bằng hàm từ người dùng amazon cục bộ. Lưu tệp, ngắt kết nối vdi.
Khởi động lại, đăng nhập, làm việc và tận hưởng
Khởi động lại máy ảo của bạn. Khi bạn đến lời nhắc đăng nhập, hãy xác định chính xác bản thân bằng đúng tên người dùng và mật khẩu mà chúng tôi vừa đặt ở đó. Bây giờ bạn đã đăng nhập và có thể bắt đầu làm việc với thiết bị máy ảo của mình. Bây giờ, chúng tôi đã làm điều đó với Amazon Linux, nhưng thủ thuật này áp dụng cho TẤT CẢ các bản phân phối Linux và hệ thống tệp hiện có. Nếu bạn không thể chạy bảo trì hệ thống bình thường, bạn có thể sử dụng thủ thuật này để vượt qua giới hạn và thực hiện các thay đổi cần thiết đối với hệ thống tệp. Điều này khá hữu ích cho các máy ảo. Chúng tôi đã làm điều này với KVM và giờ đây với VirtualBox.
Kết luận
Nếu bạn muốn thử nghiệm Amazon Linux 2 nhưng gặp khó khăn về thông tin đăng nhập và bạn không muốn tạo ảnh ISO của riêng mình hoặc cố gắng tìm ra cách đầy đủ, phù hợp để sử dụng nội dung EC2, thì bạn có thể sử dụng partx hoặc qemu-nbd để gắn đĩa cứng ảo và chỉnh sửa tệp bóng theo cách thủ công. Đây là một giải pháp đảm bảo, trong trường hợp việc khởi động vào chế độ đơn lẻ hoặc chế độ cứu hộ hoặc bất cứ điều gì không phù hợp với bạn.
Amazon Linux 2 trông giống như một hệ điều hành thú vị với một số tính năng khá thú vị và sẽ thật đáng tiếc nếu bỏ lỡ chúng vì một lỗi kỹ thuật/quan liêu như đăng nhập/mật khẩu ban đầu. Ý tôi là không có lý do gì không nên có một bộ mặc định, giống như bất kỳ bản phân phối nào. Cộng với những thay đổi chung trong cơ sở hạ tầng Linux, vis-a-vis init=/bin/bash chắc chắn không giúp được gì. Hy vọng rằng bài viết này cung cấp cho bạn bí quyết kỹ thuật cần thiết và động lực mạo hiểm để bắt đầu cuộc hành trình của mình. Hay nhất của tất cả, đó là distro-agnostic. Bất kỳ thiết bị máy ảo nào, bất kỳ hệ thống tệp nào, bạn đều có thể thực hiện các thay đổi cần thiết cho thử nghiệm của mình. Chúc bạn khám phá vui vẻ.
Chúc mừng.