Làm cách nào để gắn thiết bị trong Linux?


75

Tôi đã đọc một số tài nguyên về lệnh mount để gắn thiết bị trên Linux, nhưng không có tài nguyên nào trong số chúng đủ rõ ràng (ít nhất là đối với tôi).

Trên toàn bộ điều này hầu hết các hướng dẫn nêu:

$ mount
(lists all currently mounted devices)

$ mount -t type device directory
(mounts that device)

for example (to mount a USB drive):
$ mount -t vfat /dev/sdb1 /media/disk

Những gì không rõ ràng với tôi:

  • Làm thế nào để tôi biết những gì để sử dụng cho "thiết bị" như trong $ mount -t type device directory? Đó là, làm thế nào để tôi biết rằng tôi nên sử dụng "/ dev / sdb1" trong lệnh này $ mount -t vfat /dev/sdb1 /media/diskđể gắn ổ USB của mình?

  • tham số "-t" định nghĩa gì ở đây? thể loại?

Tôi đã đọc trang man ( $ man mount) một vài lần, nhưng có lẽ tôi vẫn còn thiếu một cái gì đó. Vui lòng làm rõ.


@rozcietrzewiacz Tôi phải thừa nhận rằng tâm trí của tôi đã không hoạt động đúng. Khi @Let_Me_Be đề cập đến /dev/disk/by-idtôi đã nghĩ rằng "by-id" sẽ được thay thế bằng một cái gì đó và nên được ban hành dưới dạng một lệnh. Tôi không nghĩ rằng nó thực sự có thể là một thư mục. Điều này có thể xảy ra với Windows -> người dùng Linux trong giai đoạn đầu của họ! (hoặc chỉ có tôi :))
it_me

@rozcietrzewiacz Điều đó không công bằng lắm.
Alex Chamberlain

4
Thả cái -t type. mountthông thường sẽ tìm ra nó và nói chung nếu không thể, đó là một dấu hiệu hợp lý bạn đang làm gì đó sai.
Alex Chamberlain

3
@AlexChamberlain Tôi có thể thấy tôi đã mang theo. Tôi xin lỗi @its_me. Tôi nên viết "Nếu bạn thực sự đọc hướng dẫn, bạn sẽ không hỏi về -ttùy chọn". Phần khác của câu hỏi (làm thế nào để xác định, thiết bị nào được đại diện bởi một /dev/mục) là rất hợp lý.
rozcietrzewiacz

Câu trả lời:


81

Bạn có thể sử dụng fdisk để có ý tưởng về loại phân vùng bạn có, ví dụ:

fdisk -l

Trình diễn:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   204796619   102398278+   7  HPFS/NTFS
/dev/sda2       204797952   205821951      512000   83  Linux
/dev/sda3       205821952   976773119   385475584   8e  Linux LVM

Bằng cách đó bạn biết rằng bạn có sda1,2 và 3 phân vùng. Tùy chọn -t là loại hệ thống tập tin; nó có thể là NTFS, FAT, EXT. Trong ví dụ của tôi, sda1 là ntfs, vì vậy nó phải là một cái gì đó như:

mount -t ntfs /dev/sda1  /mnt/

Các thiết bị USB thường là vfat và Linux thường là máy lẻ.


Tôi đang dùng máy ảo fedora (máy chủ Windows 7). Tôi vừa cắm một ổ đĩa usd (Windows không nhận ra vì VM đang chạy) và ra lệnh $ fdisk -l. Nhưng nó chỉ liệt kê các hệ thống tệp LVM của Linux và Linux (chỉ có hai). Không phải vfat, ntfs, hpfs hay ext, v.v.
it_me

Có thể đây không phải là vấn đề gắn kết, mà là vấn đề nhận dạng thiết bị. Hãy xem tập tin / var / log / message, nó sẽ hiển thị nếu có bất kỳ vấn đề nào với thiết bị USB.
ghm1014

Vì vậy, thông thường đây là cách tôi nên tìm thấy nó trên một hệ thống linux đang chạy: cắm ổ đĩa bút (ví dụ), ra lệnh # fdisk -lvà tìm thiết bị (/ dev / *) & hệ thống tập tin của nó (vfat, ntfs, hpfs, ext, v.v.) . Đúng?
it_me

Thông thường, có. Nếu bạn đang chạy gnome, nó sẽ gắn usb và ổ cứng ngoài mà không cần tự gắn. Nó hiển thị một cửa sổ bật lên giống như Windows.
ghm1014

Một nghi ngờ cuối cùng. Đây có phải là các tệp thiết bị hệ thống tập tin phổ biến duy nhất: / dev / sd * hoặc / dev / hd * dành cho đĩa cứng, / dev / cdrom cho CD-ROM và / dev / fd * cho đĩa mềm. Còn gì nữa không?
it_me

17

Tôi thực sự bất bình về điều này, và rồi nó bắt đầu quay trở lại .. nếu điều này không trả lời câu hỏi của bạn, có lẽ tôi đã đọc sai ...

Alibi: đây là bản phát hành Ubuntu 14. Số dặm của bạn có thể thay đổi.

Tôi sử dụng lsblkđể có được điểm gắn kết của mình, khác mount với Đối với tôi lsblkdễ đọc hơnmount

Đảm bảo rằng bạn đã tạo một thư mục trước khi bạn gắn thiết bị của mình.

sudo mkdir /{your directory name here}
sudo mount /dev/{specific device id} /{your directory name here that is already created}

Bạn nên đi, tuy nhiên hãy kiểm tra các quyền bảo mật trên thư mục mới đó để đảm bảo đó là những gì bạn muốn.


7

Ngày nay, bạn có thể sử dụng các đường dẫn dài để gắn một thiết bị cụ thể.

Ví dụ:

mount /dev/disk/by-id/ata-ST31500341AS_9VS2AM04-part1 /some/dir
mount /dev/disk/by-id/usb-HTC_Android_Phone_SH0BTRX01208-0\:0 /some/dir

Tôi có thể tìm thêm thông tin về điều này ở đâu? Tôi chưa tham gia vào "điều dài dòng" này trên Linux, vì vậy thật khó hiểu.
it_me

1
@Aahan Vâng, đây chỉ là những liên kết đến /dev/sd*. Có /dev/disk/by-id(ID thiết bị / phân vùng), /dev/disk/by-uuid(UUID thiết bị / phân vùng - không hữu ích cho việc sử dụng thủ công), /dev/disk/by-path(tùy thuộc vào cách thiết bị được kết nối), /dev/disk/by-label(nhãn phân vùng nếu có)
Let_Me_Be

Tôi lấy các chi tiết này ở đâu (ID phân vùng, đường dẫn thiết bị, nhãn, v.v.) từ đâu?
it_me

1
@Aahan Vâng, đó là những gì thiết bị báo cáo. Id sẽ là tên thiết bị hoặc kiểu máy hoặc số sê-ri hoặc kết hợp. Đường dẫn sẽ giống nhau, nhưng được báo cáo về cách kết nối đĩa, vì vậy nó sẽ là ví dụ pci-0000:00:1f.2-scsi-3:0:0:0-part3(pci device 0000: 00: 1f.2, cổng thứ ba, phân vùng thứ ba), nhãn sẽ là nhãn, uuid là máy tính được tạo duy nhất id (bạn sẽ sử dụng nếu bạn muốn một hình thức nhận dạng sẽ không thay đổi).
Let_Me_Be

1
Khi bạn đang đề cập đến / dev / đĩa / by-id, tôi nghĩ rằng "by-id" sẽ được thay thế bằng một cái gì đó và nên được ban hành dưới dạng một lệnh. Tôi không nghĩ rằng nó thực sự có thể là một thư mục. Cảm ơn bạn đã kiên nhẫn với tôi. LOL, tôi thật lố bịch :)
it_me

3

mount(lệnh) thường chỉ ra "loại" của hệ thống tệp trên thiết bị. Tôi nghĩ phần khó nếu tìm ra tên tệp thiết bị. Bạn gần như phải biết các quy ước đặt tên ổ đĩa để tìm ra nó.

Trên hộp Arch linux cập nhật:

133 % ls /dev/sd??
/dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sdb1  /dev/sdb2

Nhưng điều đó không hoạt động trên hộp Slackware trưởng thành (2.6.20.9):

1 % ls /dev/sd??
zsh: no matches found: /dev/sd??
2 % ls /dev/hd??
/dev/hda1  /dev/hda2

Mà không biết trước rằng /dev/sd*hoặc /dev/hd*là các tập tin thiết bị đĩa cứng, bạn phải sử dụng lspcihoặc lsusbhoặc một cái gì đó để tìm ra tên tập tin thiết bị. Các thiết bị USB thường để lại thông tin /var/log/messagesđể giúp bạn tìm ra tập tin thiết bị nào được gán cho chúng.


1
Làm thế nào về việc sử dụng fdisk -lnhư câu trả lời khác được đề cập? (cũng vui lòng xem nhận xét mới nhất của tôi về câu trả lời đó.)
it_me

1

Trên Ubuntu 14, bạn cũng có thể sử dụng ứng dụng Đĩa:

nhập mô tả hình ảnh ở đây

Đầu tiên bấm vào đĩa trên bảng điều khiển bên trái và sau đó nhấp vào phân vùng trên bảng điều khiển bên phải. Phần dưới cùng của bảng bên phải hiển thị định dạng, trạng thái gắn hiện tại, v.v. Bạn cũng có thể sử dụng GUI này để tạo / xóa / định dạng phân vùng.


Tại sao hai 4GB giống nhau? Và OQ đang gặp khó khăn trong việc tìm kiếm thiết bị chính xác. Rồi còn định dạng?
rastafile

1

Tại sao chúng ta có nhiều cách để làm điều này nhưng như mọi khi chúng ta cũng xem xét và không biết hệ thống tệp được sử dụng trong thiết bị có thể cản trở một chút, nhưng chúng ta có thể sử dụng tùy chọn "tự động" để cung cấp một chút trợ giúp.

mount -t auto /dev/sdb1 /media/pendrv

và sẵn sàng thiết bị của chúng tôi sẽ được gắn kết: at / media / Pendrv đã sẵn sàng để sử dụng, sau đó chỉ cần sử dụng:

umount /media/pendrv

... để phát hành thiết bị.


0

Diễn đàn ThoerX Kiểm tra thiết bị vớifdisk -l

Partition the device as following :-
fdisk /dev/sda
d - Delete old partitions
n - New partition
select partition number
select start block
select end block
v - verify the new partition
w - write through

now fdisk - l should show /dev/sda1 with proper filesystem type (say ext4)
mount -t ext4 /dev/sda1 /myMountPoint

0

Người đàn ông gắn kết "thiết bị" nói đến là một thiết bị khối logic với hệ thống tập tin trên đó.

"Thiết bị" cũng có thể có nghĩa là một sản phẩm (SSD là ổ đĩa, HDD là ổ đĩa, DVD là đĩa, ODD là ổ đĩa.

Thường thì nó không quan trọng. Nhưng khi nói đến việc gắn (hoặc định dạng hoặc phân vùng), nó không thành vấn đề, bởi vì nó quan trọng về mặt logic.

Như bạn có thể thấy, sda ở ngay bên cạnh sda1, 2, 3 ... Và cả sdb, sdc, mỗi phân vùng của chúng. Vì vậy, bạn có thể đi sai cả hai cách.

Khi bạn mount /dev/sdb1 /media/disk/, bạn đang chọn phân vùng 1 từ đĩa sata "b". Nếu sdb1 đó là phân vùng bút USB, thì tên mountpoint của bạn không được nói nhiều.

Bạn thậm chí có thể gắn một phần RAM để tạo ramdisk hoặc tệp ("thiết bị lặp"). Hoặc một "thiết bị" hoàn toàn ảo như sysfs, chứa thư mục / sys (mountpoint).

Ý tưởng về việc gắn kết, và do đó, gắn kết lệnh, dựa trên một khái niệm (VFS, v.v.) với ba yếu tố chính:

  1. Thiết bị phân vùng / khối: so sánh fdisk -l, lsblkcat /proc/partitions. Đó là khó khăn, nhưng 80% chỉ là quan điểm khác nhau.
  2. Hệ thống tệp: Định dạng biến một phân vùng 20 GB thành một thư mục trống với 18 GB dung lượng trống để điền vào các tệp. Xem man mkfsman mkfs.ext2(mkfs.FSTYPE).
  3. Mountpoint: Đây chỉ là một "hook", một thư mục (trống) mà nhánh mới được gắn vào thư mục trên cùng "/". Bằng cách ràng buộclớp phủ, bạn có thể tạo các cây FS phức tạp. Nhưng bất kỳ ad hoc mkdir xyzlà tốt, kỹ thuật.

Tất cả sự gắn kết này đã từng được cấu hình bởi sysadmin trong / etc / fstab, tập trung. Với việc cắm nóng dung lượng lớn hiện nay, mọi thứ trở nên hơi phức tạp.

Trong trường hợp bút USB, nó là một mô-đun hạt nhân bật lên / dev / sdb và các phân vùng của nó trong tích tắc.

Tất cả tự động hóa hơn nữa trong việc cắm nóng, đơn giản như vậy, phải được phối hợp bởi udev, và đôi khi được hoàn thiện bởi các công cụ bổ sung. Udev có thể xử lý TẤT CẢ các thiết bị, không chỉ lưu trữ.

Chúng tôi bị kẹt giữa sự thoải mái khi có một biểu tượng mới (hoặc thậm chí chỉ là một "thiết bị" có tên đàng hoàng) tự động bật lên và cách hạt nhân với tệp (ảo) có hệ thống phải chuẩn bị các bộ phận. Nhưng với RAID và mã hóa và tất cả các "thiết bị" lưu trữ khác nhau, Linux phải thêm một số lớp.

Cuối cùng, bạn muốn nội dung đó trong tầm tay của bạn.

Thông thường, bạn chỉ phải xác định đúng ... THIẾT BỊ;). Bạn có thể ls /dev/sd*xem những gì ở đó: chữ cái nào, số nào, xác định THIẾT BỊ của bạn ...

Và sau đó gõ

mkdir mydev
mount /dev/DEVICE mydev

(Bạn có thể bỏ -t typephần)


Điều này dễ đọc và có hệ thống cùng một lúc. "Gắn kết" là một khái niệm rất quan trọng. Tất cả những câu trả lời này cho thấy "vấn đề", đặc biệt là đối với người mới ra mắt . "mount" là lệnh unix. Đa chiều. Chỉ ngã ba () phức tạp hơn.
rastafile

Sự chỉ trích linux của wikipedia: Tại một thời điểm, các hệ thống Linux yêu cầu phương tiện lưu động, như đĩa mềm và CD-ROM, phải được gắn thủ công trước khi chúng có thể được truy cập. Gắn phương tiện bây giờ là tự động trong gần như tất cả các bản phân phối, với sự phát triển của udev.
rastafile
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.