Wyobraź sobie, że sformatowałem katalog główny systemem plików ext3 na osobnej partycji, która istnieje na dysku SATA HDD, a katalog osobisty na innej partycji btrfs, która tak naprawdę istnieje na dysku SSD firmy Intel.
Pobrałem plik z Internetu i tymczasowo zapisałem go /tmp
(w głównym systemie plików), a następnie postanowiłem przenieść go do mojego katalogu domowego (druga partycja).
Wyczuwam w tle bolesny proces, dzięki któremu tak proste mv
polecenie działa.
Po pierwsze, czy root i home mogą mieć różne systemy plików? Po drugie, zakładając, że odpowiedź na poprzednie pytanie jest „tak”, w jaki sposób system operacyjny zarządza wszystkim, że przejście od ext3
do btrfs
, a następnie przy użyciu różnych sterowników dla różnych typów dysków (HDD i SSD)?
źródło
Odpowiedzi:
Odpowiedź brzmi: tak, możesz mieć dowolny katalog na dowolnym urządzeniu, z dowolnym systemem plików obsługiwanym przez system operacyjny.
Możesz więc mieć,
/
/var
/home
/opt
a nawet/home/afr0ck
na różnych urządzeniach, różnych partycjach, różnych systemach plików.Nie tylko możesz, ale jest to powszechne. Na przykład, zawsze zalecane jest, aby utrzymać
/var
i/home
na różnych partycjach, aby/
jak to najprawdopodobniej przypadkowo zużywają miejsca na dysku - jeśli wypełni się, że nie ma wpływu na system zbyt dużo. Jeśli znajdują się na tej samej partycji co root, może to spowodować zatrzymanie systemu.I możesz chcieć, aby różne katalogi działały na różnych urządzeniach ze względu na szybkość. I używaj różnych systemów plików do różnych celów. Na przykład, być może ext4 jest tym, czego potrzebujesz dla plików systemu operacyjnego, ponieważ niewiele się zmieniają, ale możesz chcieć btrfs dla / home, abyś mógł zachować migawki dla kopii zapasowych. Są to wszystkie decyzje, które każda osoba może podjąć w konkretnym przypadku użycia.
Część systemu operacyjnego w przestrzeni użytkownika nie musi rozumieć różnych typów urządzeń i systemów plików. Wszystko, co robi, wymaga od jądra przeniesienia pliku, a jądro organizuje wszystko stamtąd. Tak więc
mv
polecenie (na przykład) jest agnostyczne dla systemu plików i typu urządzenia. Jądro wywołuje wszystkie sterowniki potrzebne do odczytu i zapisu na różnych partycjach.źródło
mv(1)
pierwsza próbarename(2)
pliku. Potem wraca do kopiowania i usuwania. Tak więc próba zmiany nazwy polegamv
na ustaleniu, czy jest to możliwe w sposób agnostyczny FS. (rename(2)
zawsze kończy się niepowodzeniem podczas przechodzenia między różnymi urządzeniami, niezależnie od tego, czy używają tego samego sterownika systemu plików, czy nie, @ afr0k.)mv
nie rozwidla / nie wykonujerename(1)
polecenia, po prostu próbujerename(2)
wywołać system. Nie ma standardowegorename
polecenia powłoki. W niektórych systemach jest to polecenie zmiany nazwy pliku z wieloma podstawieniami z pliku ut-linux. Nie mówiłem o poleceniu powłoki, tylko o tym, jakmv
działa wewnętrznie.Tak, oddzielne systemy plików (punkty instalacji) mogą być różnymi typami systemów plików.
/proc
jest zawsze systememprocfs
plików i/sys
zawsze jestsysfs
. Przejściowe systemy plików (czasami łącznie/tmp
) są częstotmpfs
, a w ustawieniach grupy roboczej często katalogami domowymi użytkownika (i katalogami produktów pracy) sąnfs
inne typy zdalnych (sieciowych / współdzielonych) systemów plików.Nie ma żadnego specjalnego zarządzania dla systemu operacyjnego. Do pewnego stopnia, na poziomie użytkownika, wszystkie systemy plików wyglądają podobnie, w tym sensie, że
ls
lista będzie wyglądać prawie tak samo w każdym katalogu. Poza tym systemy plików nie działają. Nawet między dwoma systemami plików (partycjami) na tym samym dysku fizycznym, tego samego typu systemu plików, nie ma powiązania 1 . Na przykład przenoszenie pliku z jednego systemu plików (punktu montowania) do innego zawsze wymaga wykonania kopii i usunięcia oryginału. Nie ma znaczenia, czy są to partycje na różnych dyskach. Nie ma znaczenia, czy jeden z nich jest dyskiem twardym, a drugi dyskiem SSD. Nie ma znaczenia, czy ktoś jest,ext3
a kto jestbtrfs
. Nie ma znaczenia, czy jeden jest wewnętrzny (wewnątrz obudowy komputera), a drugi zewnętrzny (kilka cali na zewnątrz, podłączony kablem) - czy zdalny (dostępny przez sieć).Mówiąc o sieci, jest to trochę analogiczne do
ssh
. Odczytuje z klawiatury i wysyła wpisywane znaki do sieci. Jednocześnie odczytuje z sieci i wyświetla wyniki na ekranie.Lub rozważ to: wyobraź sobie, że rozmawiasz przez telefon i prowadzisz rozmowę między osobą na drugim telefonie a inną osobą w pokoju. To nic wielkiego.
________
1 z wyjątkiem dowiązań symbolicznych - ale mogą one przekraczać granice systemu plików.
źródło
/tmp
na tmpfs? Pomyślałem też, że to dość standardowa praktyka, ponieważ zawsze możesz włożyć rzeczy/var/tmp
(chociaż nie jest to czyszczone przy starcie). Nie jestem ekspertem od domyślnych ustawień cross-distro, tylko Debian / Ubuntu i Arch. Z tymi plus RedHat, który obejmuje dużą część zainstalowanych systemów Linux (ale nie tak bardzo dużą część całkowitej dystrybucji).tmpfs
Linuksa nastąpił dopiero w ciągu ostatnich 5-7 lat. np. Fedora omawiała zmianę na swojej wiki ~ 2012 i wierzę, że została wprowadzona w Debian Wheezy.