Do czego służą te polecenia?

10

Wczoraj musiałem zainstalować system Windows z nadpisywaniem Grub.

Cóż, to nie pierwszy raz, kiedy musiałem naprawić Grub, więc użyłem LiveCD, zamontowałem partycję root (nie mam bootowania, tylko /i home) i uruchomiłem grub-install --root-directory=/mnt/ /dev/sda. Jednak to nie zadziałało.

Po jakimś czasie Googling znalazłem tutorial, w którym zamiast tylko montowania partycji Linuksa Zrobił też mount --bind /mnt/dev /devi mount --bind /mnt/proc /proc/. Po tym chrootcelu /mnt, a następnie zainstalować Grub i za pomocą tej metody, to działało.

Do czego służą mount --bindpolecenia? Znam użycie --bind used(strony podręcznika ), ale nie wiem, dlaczego zostało użyte w tym przykładzie.

eez0
źródło

Odpowiedzi:

10

proca syssystemy plików są dostarczane przez działające jądro - gdy jądro nie działa, przestają istnieć. Oznacza to, że kiedy chrootujesz do innego systemu operacyjnego, te systemy plików nie są obecne. Wiele programów oczekuje, że one istnieją, aby mogły funkcjonować, na przykład mogą wymagać informacji o działającym systemie lub chcą zmodyfikować sposób, w jaki jądro coś obsługuje. Często wystarczy po prostu dostarczyć /proci /sysz obecnego jądra, aby te programy działały zgodnie z oczekiwaniami.

Dowiązanie symboliczne nie wystarczyłoby, ponieważ chrooting unieważniłby używane ścieżki plików. W systemie Linux nie można także na stałe umieszczać katalogów linków (innych niż .i .., jak zapewnia mkdir). Oznacza to, że należy zastosować trzecią opcję, aby wykonać kopię lustrzaną tych systemów plików w środowisku chrootowanym - bindowanie montażu. Podłączenie jest dostarczane przez jądro bezpośrednio i działa zgodnie z oczekiwaniami w chroot.

Chris Down
źródło
proci sysmoże być montowany w wielu miejscach, więc --bindnie jest potrzebny (zamontuj je tylko dwa razy). Jednak /dev/zarządzane jest przez jądro udev nie insider.
Maciej Piechotka
@MaciejPiechotka Nigdy nie wspominałem / dev, ponieważ nie ma tego w pytaniu, ale to niekoniecznie musi być zarządzane przez udev.
Chris Down
Byłem bardziej odnosząc się do proci sysjak systemy plików, które mogą być montowane podwójnie ( mount -t proc none /mnt/proc), więc NIE niezbędną potrzebę mount --bindnich. devzwykle jest zarządzany przez przestrzeń użytkownika (czy to udev, busybox czy cokolwiek innego), więc musisz to zrobić. W każdym razie drobny punkt.
Maciej Piechotka
0

Ta --bindopcja pozwoli na pojawienie się punktu podłączenia w chrootśrodowisku zed.

Anthon
źródło