Bayangkan saya memformat root dengan sistem file ext3 pada partisi terpisah yang kebetulan ada pada HDD SATA dan direktori home pada partisi btrfs berbeda yang kebetulan ada pada SSD Intel.
Saya mengunduh file dari Internet dan untuk sementara menyimpannya /tmp
(di root filesystem), kemudian saya memutuskan untuk memindahkannya ke direktori home saya (partisi kedua).
Saya bisa merasakan proses menyakitkan yang terjadi di latar belakang untuk membuat mv
perintah sederhana bekerja.
Jadi, pertama, mungkinkah root dan home memiliki sistem file yang berbeda? Kedua, dengan asumsi jawaban untuk pertanyaan sebelumnya adalah "ya", bagaimana OS mengelola semua yang transisi dari ext3
ke btrfs
dan kemudian menggunakan driver perangkat yang berbeda untuk jenis disk yang berbeda (HDD dan SSD)?
sumber
Jawaban:
Jawabannya adalah ya, Anda dapat memiliki direktori di perangkat apa pun, menjalankan sistem file apa pun yang dapat didukung oleh OS.
Jadi Anda dapat memiliki
/
/var
/home
/opt
dan bahkan/home/afr0ck
pada perangkat yang berbeda, partisi yang berbeda, sistem file yang berbeda.Anda tidak hanya bisa, tetapi juga umum. Sebagai contoh, selalu disarankan untuk menjaga
/var
dan/home
pada partisi yang berbeda/
karena ini kemungkinan besar akan secara tidak sengaja menghabiskan ruang disk - jika mereka mengisi, itu tidak berdampak terlalu banyak pada sistem. Jika mereka berada di partisi yang sama dengan root, ini dapat menyebabkan sistem berhenti.Dan Anda mungkin ingin direktori yang berbeda dijalankan pada perangkat yang berbeda untuk alasan kecepatan. Dan gunakan sistem file yang berbeda untuk tujuan yang berbeda. Sebagai contoh, mungkin ext4 adalah apa yang Anda inginkan untuk file OS, karena mereka tidak banyak berubah, tetapi Anda mungkin menginginkan btrfs untuk / home sehingga Anda dapat menyimpan snapshot untuk cadangan. Ini semua adalah keputusan yang dapat dibuat oleh setiap orang untuk kasus penggunaan spesifik mereka.
Bagian ruang pengguna OS tidak perlu memahami berbagai jenis perangkat dan sistem file. Semua itu meminta kernel untuk memindahkan file, dan kernel mengatur semuanya dari sana. Jadi
mv
perintah (misalnya) adalah sistem file dan tipe perangkat agnostik. Kernel meminta driver apa pun yang diperlukan untuk membaca dan menulis ke partisi yang berbeda.sumber
mv(1)
pertama kali mencoba kerename(2)
file. Kemudian jatuh kembali untuk menyalin dan menghapus. Jadi mencoba mengubah nama adalah bagaimana mencarimv
tahu apakah itu mungkin dengan cara agnostik FS (rename(2)
selalu gagal saat berpindah di antara perangkat yang berbeda, apakah mereka menggunakan driver sistem file yang sama atau tidak, @ afr0k.)mv
tidak mem -fork / execrename(1)
perintah, ia hanya mencobarename(2)
panggilan sistem. Tidak adarename
perintah shell standar . Pada beberapa sistem, ini adalah penggantian-file perintah penggantian nama file dari util-linux. Saya tidak berbicara tentang perintah shell, bagaimana caramv
kerjanya secara internal.Ya, sistem file yang terpisah (titik mount) dapat berupa tipe sistem file yang berbeda.
/proc
selalu merupakanprocfs
sistem file, dan/sys
selalu asysfs
. Sistem file transien (kadang-kadang termasuk/tmp
) seringtmpfs
, dan, dalam pengaturan workgroup, adalah umum untuk direktori home pengguna (dan direktori produk kerja mereka) untuk menjadinfs
atau tipe sistem file remote (jaringan / berbagi) lainnya.Tidak ada manajemen khusus untuk OS yang harus dilakukan. Sampai pada titik tertentu, pada level pengguna, semua sistem file terlihat sama, dalam arti bahwa sebuah
ls
daftar akan terlihat hampir sama di direktori mana pun. Selain itu, sistem file tidak berinteraksi. Bahkan antara dua filesystem (partisi) pada disk fisik yang sama, dari tipe filesystem yang sama, tidak ada keterkaitan 1 . Misalnya, memindahkan file dari satu sistem file (titik mount) ke yang lain selalu melibatkan membuat salinan dan menghapus yang asli. Tidak masalah jika mereka partisi pada disk yang berbeda. Tidak masalah jika salah satunya HDD dan SSD. Tidak masalah jika adaext3
dan tidakbtrfs
. Tidak masalah jika seseorang internal (di dalam kasing komputer) dan satunya eksternal (beberapa inci di luar, dihubungkan dengan kabel) - atau jarak jauh (diakses melalui jaringan).Berbicara tentang jaringan, ini agak analog dengan
ssh
. Bunyinya dari keyboard dan mengirim karakter yang Anda ketik ke jaringan. Secara bersamaan, ia membaca dari jaringan dan menampilkan hasilnya di layar.Atau pertimbangkan ini: bayangkan Anda sedang menelepon, dan Anda menengahi percakapan antara orang di telepon lain dan orang lain di ruangan itu. Bukan masalah besar.
________
1 kecuali untuk tautan simbolik - tetapi mereka dapat melewati batas sistem file.
sumber
/tmp
pada tmpfs? Saya juga berpikir itu adalah praktik standar, karena Anda selalu dapat memasukkan barang/var/tmp
(meskipun itu tidak dibersihkan saat boot). Saya bukan ahli default lintas-distro, hanya Debian / Ubuntu dan Arch. Dengan yang ditambah RedHat, yang mencakup sebagian besar dari sistem Linux yang diinstal di luar sana (tetapi tidak hampir sama besar dengan sebagian besar dari total distro).tmpfs
di Linux hanya baru pada 5-7 tahun terakhir. misalnya Fedora sedang membahas perubahan pada wiki mereka ~ 2012, dan saya percaya itu diperkenalkan di Debian Wheezy.