Bagaimana saya bisa menentukan urutan sistem file mana yang secara otomatis dipasang?

14

Saya perlu baris tertentu /etc/fstabuntuk dipasang setelah dua baris lainnya:

# 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

Perilaku saat ini adalah untuk sering membalik urutan dua baris terakhir dengan cara yang tidak dapat diprediksi. Bagaimana saya bisa menentukan pesanan yang diperlukan?

ændrük
sumber
4
Kemungkinan penyelesaian (belum diuji): Konfigurasikan yang terakhir sebagai noautodan mount rc.local?
jg-faustus
@ jg-faustus Terima kasih, solusinya tampaknya berhasil.
ændrük
@ jg-faustus Hadiah ini akan segera berakhir dan solusi Anda adalah hal yang paling dekat dengan jawaban. Jika Anda mempostingnya di bawah ini saya akan memberi Anda +50.
ændrük

Jawaban:

17

Salah satu opsi adalah menunda pemasangan hingga setelah /etc/fstabselesai, ini memberi Anda kontrol penuh atas urutan pemasangan.

Tambahkan saja noautoopsi mount di fstab, dan mount di rc.local.

Menurut halaman manual , mount -amount entri fstabsecara berurutan, sementara menambahkan opsi -F('fork') akan me-mountnya secara paralel. Tampaknya boot standar menggunakan 'fork', mungkin untuk mengurangi waktu boot, jadi saya kira pemasangan (semi-) secara manual setelahnya adalah cara paling sederhana untuk mendapatkan kembali kendali atas tatanan mount.

jg-faustus
sumber
4

Saya mungkin mempertimbangkan untuk membuat skrip yang me-mount disk kedua setelah skrip mount dipanggil. Di Ubuntu initd adalah layanan yang menjalankan semua komponen sistem operasi Anda, dan ini disebut pemula .

Berbasis acara, artinya terlihat / menunggu dan memancarkan acara selama proses boot up. Seperti yang ditunjukkan pos ini , layanan initd mencoba melakukan hal-hal secara paralel, yang mungkin merupakan penyebab masalah Anda. Jadi, Anda dapat mengatur skrip agar berjalan langsung setelah mount selesai dan menyelesaikan prosesnya.

Skrip mount disimpan di direktori / etc / init /. Saya akan menambahkan skrip mount tambahan Anda di sana juga. Lihatlah deskripsi proses memulai ini. Situs itu mungkin akan membantu Anda menatap naskah Anda sendiri dengan cepat.

Anda harus memulai bagian dalam skrip Anda sendiri. Lihat bagian ini untuk memulai pekerjaan setelah yang lain selesai.

Saya masih mencari cara membuat skrip start up saya sendiri, jadi saya tidak bisa membantu lagi. Jika Anda menemukan solusi yang berfungsi, silakan kirim kembali ke sini.

nelaaro
sumber
4

Ubuntu menggunakan mountallsaat boot, bukan mount -a. Mountall menunggu perangkat yang mendasari untuk muncul dan kemudian me-mount fs pada mereka segera, kecuali jika fs sedang dipasang di bawah belum dipasang, maka itu menunggu fs.

Anda harus bisa mendapatkan urutan yang Anda inginkan dengan mengatur titik mount dari 3 sistem file sehingga mereka ditumpuk satu di bawah yang lain. Alih-alih memasang ketiga di /home/.something, masukkan yang pertama di /home/.x, dan yang kedua di /home/.x/.y, dan yang ketiga di /home/.x/.y/ .z.

psusi
sumber
3

Systemd kini telah menyertakan opsi ketergantungan yang memberlakukan pemesanan gunung. Dalam kasus Anda, tambahkan argumen fstab:

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

Opsi noauto tidak akan berfungsi jika Anda perlu memasang sistem file yang terpasang lainnya. Dalam kasus saya di atas berfungsi lihat komit https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823 untuk lebih jelasnya.

techimperial
sumber
1

Menurutnya man fstab, showthroughpilihannya mungkin apa yang Anda cari. Coba atur di / home / ak dan lihat apakah itu berfungsi.

Mungkin saja mountgarpu saat memasang sistem file saat boot; jika demikian, urutan partisi Anda dipasang akan tidak ditentukan.

Scott Severance
sumber
1
showthroughtidak menyelesaikan masalah.
ændrük