Mungkinkah partisi root dan home memiliki sistem file yang berbeda dan ditempatkan di perangkat fisik terpisah?

10

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 mvperintah 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 ext3ke btrfsdan kemudian menggunakan driver perangkat yang berbeda untuk jenis disk yang berbeda (HDD dan SSD)?

Karim Manaouil
sumber
3
Itu dilakukan dengan lapisan. Lapisan filesystem yang dibangun di atas lapisan perangkat blok. Anda dapat menggunakan sistem file yang cocok di lapisan sistem file. Anda dapat menggunakan perangkat blok yang sesuai di lapisan perangkat blok itu. Setiap titik pemasangan dapat memiliki sistem file dan perangkatnya sendiri.
serbuk gergaji
@sawdust, itu adalah hal yang sangat menarik yang Anda tunjuk, lapisan sistem berkas dan blok lapisan perangkat. Bagaimana mereka berhubungan? Setiap bacaan akan sangat membantu.
Karim Manaouil
Tidak tahu banyak tentang sistem file, tapi saya berasumsi prosesnya tidak akan jauh berbeda dari menyalin file ke drive FAT32 eksternal
Blaine
Mengapa Anda masih menggunakan ext3 pada tahun 2017 ketika itu sangat mudah untuk ditingkatkan ke ext4?
David Foerster

Jawaban:

25

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 /optdan bahkan /home/afr0ckpada perangkat yang berbeda, partisi yang berbeda, sistem file yang berbeda.

Anda tidak hanya bisa, tetapi juga umum. Sebagai contoh, selalu disarankan untuk menjaga /vardan /homepada 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 mvperintah (misalnya) adalah sistem file dan tipe perangkat agnostik. Kernel meminta driver apa pun yang diperlukan untuk membaca dan menulis ke partisi yang berbeda.

Paul
sumber
7
Berguna untuk menunjukkan bahwa mv(1)pertama kali mencoba ke rename(2)file. Kemudian jatuh kembali untuk menyalin dan menghapus. Jadi mencoba mengubah nama adalah bagaimana mencari mvtahu 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.)
Peter Cordes
1
@PeterCordes ya, saya tidak tahu mengganti nama adalah suatu hal. Saya selalu menggunakan mv untuk mengubah nama hal.
5
@stanri: mvtidak mem -fork / exec rename(1)perintah, ia hanya mencoba rename(2)panggilan sistem. Tidak ada renameperintah shell standar . Pada beberapa sistem, ini adalah penggantian-file perintah penggantian nama file dari util-linux. Saya tidak berbicara tentang perintah shell, bagaimana cara mvkerjanya secara internal.
Peter Cordes
Bahkan / usr dapat berada pada partisi yang berbeda, itulah alasan mengapa beberapa hal yang sangat penting ada di / bin / lib dan / sbin - apakah semua installer akan mendukungnya adalah masalah lain.
rackandboneman
7

Ya, sistem file yang terpisah (titik mount) dapat berupa tipe sistem file yang berbeda.  /procselalu merupakan procfssistem file, dan /sysselalu a sysfs. Sistem file transien (kadang-kadang termasuk /tmp) sering tmpfs, dan, dalam pengaturan workgroup, adalah umum untuk direktori home pengguna (dan direktori produk kerja mereka) untuk menjadi nfsatau 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 lsdaftar 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 ada ext3dan 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.

G-Man Mengatakan 'Reinstate Monica'
sumber
1
Saya sebagian besar setuju dengan jawaban Anda, tetapi itu tidak benar-benar khas untuk / tmp menjadi tmpfs (walaupun mungkin diatur seperti itu pada beberapa distro) - biasanya dari partisi root dan dibersihkan saat boot. Ubuntu dan Redhat ketik distro menggunakan / dev / shm sebagai tmpfs,
davidgo
Saya bingung. Saya telah memperbarui jawaban saya.
G-Man Mengatakan 'Reinstate Monica'
1
@davidgo: Distro Linux apa yang tidak default di /tmppada 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).
Peter Cordes
(mengabaikan sistem embedded) Saya hanya menggunakan Centos dan Ubuntu secara teratur - keduanya menggunakan disk untuk / tmp. - Saya cukup yakin ini berarti Debian, Redhat, dan Mint semua akan mengikuti konvensi yang sama. Perangkat Android saya tidak memiliki / tmp
davidgo
2
@PeterCordes Munculnya tmpfsdi 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.
Bob