Làm thế nào tôi có thể chỉ định thứ tự các hệ thống tập tin được tự động gắn kết?


14

Tôi cần một hàng cụ thể /etc/fstabđể được gắn luôn sau hai hàng khác:

# Always mount these first
UUID=fdf38dd4-9e9d-479d-b830-2a6989958503 / ext4 noatime,discard,errors=remount-ro 0 1
UUID=2b548eb8-fa67-46ce-a998-91d587dba62f /home/.hdd ext4 errors=remount-ro 0 2

# Always mount this second
none /home/ak aufs br:/home/.ssd/ak=rw:/home/.hdd/ak=rw 0 0

Hành vi hiện tại là thường đảo ngược thứ tự của hai hàng cuối theo cách không thể đoán trước. Làm thế nào tôi có thể chỉ định thứ tự cần thiết?


4
Cách giải quyết có thể (chưa được kiểm tra): Định cấu hình cái cuối cùng noautovà gắn kết rc.local?
jg-faustus

@ jg-faustus Cảm ơn bạn, cách giải quyết có vẻ thành công.
ændrük

@ jg-faustus Tiền thưởng này sẽ sớm kết thúc và cách giải quyết của bạn là điều gần gũi nhất với câu trả lời. Nếu bạn đăng nó dưới đây tôi sẽ cung cấp cho bạn +50.
ændrük

Câu trả lời:


17

Một tùy chọn là hoãn việc gắn kết cho đến khi /etc/fstabhoàn thành, điều này cho phép bạn kiểm soát hoàn toàn thứ tự gắn kết.

Chỉ cần thêm noautovào các tùy chọn gắn kết trong fstab và gắn kết rc.local.

Theo trang man , mount -agắn kết các mục fstabtheo tuần tự, trong khi thêm -Ftùy chọn ('fork') sẽ gắn chúng vào song song. Có vẻ như khởi động tiêu chuẩn đang sử dụng 'fork', có lẽ là để giảm thời gian khởi động, vì vậy tôi đoán việc gắn (bán) theo cách thủ công sau đó là cách đơn giản nhất để lấy lại quyền kiểm soát thứ tự gắn kết.


4

Tôi có thể xem xét việc thiết lập một tập lệnh gắn các đĩa thứ hai sau khi tập lệnh gắn kết được gọi. Trong Ubuntu initd là dịch vụ khởi động tất cả các bộ của hệ điều hành của bạn và nó được gọi là mới bắt đầu .

Nó dựa trên sự kiện, nghĩa là nó trông / chờ và phát ra các sự kiện trong quá trình khởi động. Như bài đăng này đã chỉ ra dịch vụ initd cố gắng thực hiện song song, đó có thể là nguyên nhân gây ra vấn đề của bạn. Vì vậy, bạn có thể đặt tập lệnh của mình chạy thẳng sau khi quá trình gắn kết hoàn thành và hoàn tất quy trình.

Các tập lệnh mount được giữ trong thư mục / etc / init /. Tôi cũng sẽ thêm kịch bản gắn kết bổ sung của bạn ở đó. Nhìn vào mô tả của quá trình khởi động. Trang web đó có thể sẽ giúp bạn được nhìn chằm chằm với kịch bản của riêng bạn nhanh nhất.

Bạn cần phải có một khởi đầu trên phần trong kịch bản của riêng bạn. Xem phần này để bắt đầu một công việc sau khi một công việc khác đã kết thúc.

Tôi vẫn đang xem làm thế nào để tự tạo kịch bản khởi động cho riêng mình, vì vậy tôi không thể hữu ích hơn nữa. Nếu bạn tìm thấy một giải pháp làm việc xin vui lòng gửi lại ở đây.


4

Ubuntu sử dụng mountalllúc khởi động, không mount -a. Mountall đợi các thiết bị bên dưới xuất hiện và sau đó gắn fs vào chúng ngay lập tức, trừ khi fs mà nó đang được gắn dưới chưa được gắn, sau đó nó chờ fs đó.

Bạn sẽ có thể nhận được thứ tự bạn muốn bằng cách đặt các điểm gắn kết của 3 hệ thống tệp để chúng được xếp chồng lên nhau. Thay vì gắn cả ba vào /home/.s Something, hãy đặt cái đầu tiên vào /home/.x và cái thứ hai trong /home/.x/.y và cái thứ ba trong /home/.x/.y/ .z.


3

Systemd hiện đã bao gồm một tùy chọn phụ thuộc để thực thi thứ tự gắn kết. Trong trường hợp của bạn, thêm các đối số fstab:

x-systemd.requires-mounts-for=/,x-systemd.requires-mounts-for=/home/.hdd

Tùy chọn noauto sẽ không hoạt động nếu bạn cần gắn kết với các hệ thống tệp được gắn khác. Trong trường hợp của tôi, công việc trên xem cam kết https://github.com/systemd/systemd/commit35319d230c8bafe834b2dac26ace49fcfba139823 để biết thêm chi tiết.


1

Theo man fstab, showthroughtùy chọn có thể là những gì bạn đang tìm kiếm. Hãy thử đặt nó trên / home / ak và xem nếu nó hoạt động.

Có thể là mountrẽ nhánh khi gắn hệ thống tập tin trong khi khởi động; nếu vậy, thứ tự mà các phân vùng của bạn được gắn kết sẽ không được xác định.


1
showthroughkhông giải quyết được vấn đề.
ændrük
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.