błąd montowania „nie jest urządzeniem blokowym”

22

Usiłuję olddirudostępnić newdirza pomocą polecenia mount:

mount olddir newdir

Dlaczego pojawia się następujący błąd?

mount: olddir nie jest urządzeniem blokowym

Juuso Ohtonen
źródło

Odpowiedzi:

15

mount dołącza blokowe urządzenia pamięci masowej zawierające system plików do katalogu, co nie jest tym, co próbujesz zrobić, stąd komunikat o błędzie. To, czego chcesz, to utworzyć łącze z nowej nazwy katalogu do starej istniejącej nazwy. W tym celu musisz użyć lnpolecenia, aby utworzyć dowiązanie symboliczne.

ln -s olddir newdir
Kyle Jones
źródło
Próbuję tego, co zasugerowałeś, ale zamiast linkować z olddir do newdir, tworzę dowiązanie symboliczne o nazwie olddir wewnątrz newdir. Na przykład po zrobieniu ln -s /olddir /newdirkończę na / newdir / olddir @, który prowadzi do / olddir. Jak sprawić, by robiło to, co powiedziałeś?
trusktr
newdir powinien być nazwą, którą chcesz utworzyć, która wskazuje na olddir . newdir nie powinien już istnieć.
Kyle Jones
Całkowicie rozumiem, co masz na myśli i właśnie to próbuję zrobić, ale robi coś naprawdę dziwnego, zupełnie innego. /olddiristnieje i /newdirnie istnieje. Następnie, po uruchomieniu ln -s /olddir /newdir, tworzy /newdir/olddirlinki do których /olddir. Nie chcę tego tworzyć /newdir/olddir. Chcę, żeby to tworzyło /newdirtylko to, co powinno zawierać link /olddir, ale nie tak się dzieje. Zamiast tworzyć /newddir, robi /newdir/olddir. To takie dziwne!!! Rozumiesz co mam na myśli?
trusktr
26

W systemie Linux można wykonać podłączenie wiązania , które podzieli istniejący katalog na nowy punkt podłączenia.

mount --bind <olddir> <mountpoint>

Solaris obsługuje alternatywną składnię:

mount -F lofs <olddir> <mountpoint>

* mount_nullZamiast tego używa BSD (chociaż nie jest dostarczane z OS X).

mount_null <olddir> <mountpoint>
Ignacio Vazquez-Abrams
źródło
1
Dokładnie odpowiedź!
trusktr
2

Jeśli próbujesz zamontować logiczny dysk twardy / SDD

  • I dual boot: Windows 10 / Ubuntu
  • Znalazłem to, szukając sposobu na zamontowanie dysku Windows w Linuksie

Podjęte kroki

  • pokaż urządzenia blokowe

    ℹ️ Twój HDD / SDD jest blokowym urządzeniem magazynującym

    sudo blkid
    
    /dev/sda5: UUID="a6aa3891-1dc2-439a-b449-b9b1848db028" TYPE="ext4" PARTUUID="e4887e0f-05"
    /dev/sda1: LABEL="System" UUID="C6F4E92AF4E91E05" TYPE="ntfs" PARTUUID="e4887e0f-01"
    /dev/sda2: LABEL="Windows" UUID="4ABAF478BAF461BD" TYPE="ntfs" PARTUUID="e4887e0f-02"
    
  • W moim przypadku chcę zamontować urządzenie oznaczone jako „Windows” /dev/sda2

Co nie działało?

  • Okazuje się, że odwróciłem mountargumenty polecenia, aby uzyskać skargę „nie jest urządzeniem blokowym”
    mkdir Windows
    sudo mount Windows /dev/sda2
    mount: /dev/sda2: /home/casey/Windows is not a block device.
    

Co zrobił pracę 🤦♂️️

  • mount działa jak szef, gdy podajesz argumenty w odpowiedniej kolejności!
    sudo mount /dev/sda2 Windows 
    cd Windows 
    ls
    Config.Msi                hiberfil.sys   Intel         pagefile.sys   ProgramData     'Program Files (x86)'  '$Recycle.Bin'  'System Volume Information'   WCH.CN
    'Documents and Settings'   home           msdia80.dll   PerfLogs      'Program Files'   Recovery               swapfile.sys    Users                        Windows
    
fusion27
źródło
1
Dzięki, ja też odwróciłem zamówienie
użytkownik3804598
0

Kiedy używam mount shareddir newdir, otrzymuję to samo, a następnie wyznaczam hosta serwera nfs do zamontowania, wszystko się zgadza. Polecenie takie jak:

mount host:shareddir newdir
nanxj
źródło