Chủ đề của bài viết này là kết nối các thiết bị bên ngoài với máy Mac thông qua các giao diện SAS, Fibre Channel (FC), eSATA. Hãy nói ngay rằng để giải quyết vấn đề truy cập các thiết bị như vậy, có một cách của một người khỏe mạnh: xây dựng một PC giá rẻ, cắm thẻ điều khiển HBA SAS hoặc FC (ví dụ: bộ chuyển đổi LSI đơn giản), kết nối thiết bị của bạn với bộ điều khiển này , cài đặt bất kỳ Linux nào trên PC và hoạt động từ Mac qua mạng. Nhưng điều này là tầm thường và không thú vị. Chúng tôi sẽ đi theo con đường khó khăn và kết nối các thiết bị của mình trực tiếp tới Mac.
Những gì chúng ta cần cho việc này:
– một số tiền kha khá để mua thiết bị mới hoặc may mắn trong các cuộc đấu giá trên eBay (nơi, chỉ cần một chút nỗ lực, bạn có thể mua được thiết bị cần thiết của thế hệ trước rẻ hơn 10 lần so với giá niêm yết);
- Bài viết này.
Để làm việc với băng từ (hiện nay hầu như được thể hiện phổ biến ở định dạng LTO), bạn phải có ổ băng từ LTO (bộ truyền phát) hoặc thư viện băng từ. Đây là một thiết bị khá đắt tiền khi mua lần đầu (từ hàng trăm nghìn rúp), nhưng đáng giá một số tiền hợp lý khi mua đồ cũ. Do các thế hệ LTO thay đổi khoảng hai năm một lần và khả năng tương thích bị giới hạn ở hai thế hệ, thị trường thứ cấp khá bão hòa với các thiết bị có thể sử dụng được từ bốn năm tuổi trở lên, tức là. thế hệ trước đây và hơn thế nữa. Nếu bạn mua một thiết bị mới cho mục đích thương mại thì chính bạn cũng hiểu tại sao mình cần nó. Nếu bạn muốn mua cho ngôi nhà và gia đình của mình, bạn có thể coi tùy chọn này như một cách để lưu trữ thông tin (vì bản thân phương tiện này rất rẻ trên 1 gigabyte).
Bắt đầu từ thế hệ LTO-5 (và một phần LTO-4), các thiết bị làm việc với băng từ được kết nối phần cứng với máy tính thông qua giao diện SAS hoặc FC (thường có hai phiên bản cho mỗi thiết bị)
Mặt khác, Apple vui lòng cung cấp cho chúng tôi giao diện USB-C trên máy Mac của chúng tôi (hoạt động bằng giao thức USB, Thunderbolt 3 hoặc DisplayPort), đôi khi là giao diện Ethernet, cũng như Thunderbolt 3 - Thunderbolt 2 và Thunderbolt - FireWire 800 độc quyền bộ điều hợp.
Bế tắc? Không thực sự. May mắn thay, Thunderbolt có thể hoạt động ở chế độ PCIe và cho phép kết nối các thẻ PCIe giống như khi chúng được lắp trực tiếp bên trong thùng máy tính. Do đó, mọi sự mở rộng cấu hình phần cứng của máy Mac đều có thể thực hiện được, miễn là có bộ chuyển đổi và trình điều khiển thích hợp.
Về mặt khái niệm, cách đơn giản nhất để giải quyết vấn đề là một hộp bên ngoài dành cho bộ điều hợp PCIe có giao diện Thunderbolt (hệ thống mở rộng thẻ PCIe), trong đó bạn có thể cài đặt bộ điều hợp bus SAS hoặc FC Host (HBA). Ví dụ, những chiếc hộp như vậy được sản xuất bởi công ty và một số khác. Có một lưu ý ở đây: không phải mọi bộ điều khiển đều hoạt động được với chúng ta, chỉ những bộ điều khiển có trình điều khiển tương thích mới hoạt động. macOSCó rất ít bo mạch như vậy, và những bo mạch rẻ nhất và phổ biến nhất (ví dụ, cùng loại LSI) lại không nằm trong số đó. May mắn thay, Sonnet đã bỏ công sức biên soạn chúng. Thẻ PCIe với nhiều hệ điều hành khác nhau thông qua giao diện Thunderbolt.
Một giải pháp khác là mua bộ chuyển đổi giao diện Thunderbolt - SAS hoặc Thunderbolt - FC làm sẵn, trên thực tế, đây là một cụm hộp và bộ điều khiển được làm sẵn. Công ty nổi tiếng nhất ở khu vực này , nhưng cũng có những sản phẩm của các công ty khác.
Lưu ý rằng không phải tất cả các bộ điều khiển SAS và FC đều được chứng nhận tuân thủ tiêu chuẩn LTO, vì bản thân việc này cũng tốn tiền. Một số nhà sản xuất trực tiếp viết rằng bộ điều khiển của họ không được thiết kế để hoạt động với các ổ băng từ.
Để hoàn thiện bức tranh, chúng tôi lưu ý rằng mLogic tạo ra , là ổ IBM LTO-8 trong hộp bên ngoài, trong đó ngay lập tức tích hợp bộ chuyển đổi SAS sang Thunderbolt 3. Tuy nhiên, đây là một điều thậm chí còn kỳ lạ hơn mọi thứ được mô tả ở trên, đặc biệt là theo tiêu chuẩn của khu vực chúng ta. Tôi nghi ngờ rằng thiết bị này thậm chí có thể được nhập khẩu hợp pháp vào Nga (ổ đĩa LTO chứa các tính năng mã hóa và các nhà sản xuất như IBM và HP nhận được giấy phép nhập khẩu của FSB cho từng kiểu máy vì lý do này).
Tiếp theo, chúng ta sẽ xem xét, làm ví dụ, một bộ thiết bị cụ thể, chủ sở hữu của nó mà tác giả đã trở thành sau một số lần mua lại thành công, nhưng nguyên tắc chung phải được duy trì cho tất cả các lựa chọn.
Vì vậy, chúng tôi có các thiết bị sau để làm việc với băng:
– Máy tính Apple Mac mini 2018 với macOS 10.15 Catalina, có các cổng USB-C hỗ trợ Thunderbolt 3;
– Bộ chuyển đổi Apple Thunderbolt 3 / Thunderbolt 2;
– Cáp Apple Thunderbolt 2;
– Bộ chuyển đổi giao diện ATTO ThunderLink SH 1068 (2*Thunderbolt / 2*SAS-2);
– Cáp SAS SFF-8088 – SFF-8088;
– ổ băng từ LTO-5 IBM TS2350;
– Hộp mực LTO-5, hộp mực làm sạch.
Bây giờ, như họ nói, với tất cả những thứ này, chúng tôi sẽ cố gắng thành công.
Chúng tôi tải xuống từ trang web ATTO phiên bản mới nhất của trình điều khiển ThunderLink SH 1068 (rõ ràng, để thuận tiện cho chúng tôi, nó được kết hợp với trình điều khiển SH 2068 và nằm trong phần 2068, chỉ được viết bên trong kho lưu trữ có trình điều khiển) và Tiện ích cấu hình ATTO.

Tất nhiên, trình điều khiển cần được cài đặt. Trước những hành động như vậy, tác giả khuyên nên luôn chụp nhanh hệ thống tệp APFS của đĩa khởi động bằng lệnh
tmutil localsnapshothoặc bản sao lưu của đĩa khởi động, nếu nó có HFS+. Bạn không bao giờ biết. Sau đó, bạn sẽ dễ dàng quay lại từ ảnh chụp nhanh.
Tiếp theo, những người thiếu kinh nghiệm nhưng có đầu óc siêng năng chắc chắn sẽ có xu hướng đọc kỹ hướng dẫn cài đặt driver ATTO và làm theo. Kết quả là - tadam! – chúng tôi nhận được một hệ điều hành bị treo ở giai đoạn tải. Ở đây, chúng tôi có thể cần một ảnh chụp nhanh để có thể khôi phục bằng cách gọi Time machine từ phân vùng khôi phục hoặc từ cùng một phân vùng khôi phục, chúng tôi có thể xóa kext bị bệnh khỏi thư mục tiện ích mở rộng kernel theo cách thủ công (tác giả thường không khuyên bạn nên làm điều này).
Tại sao điều này lại xảy ra? Bởi vì Apple đã chăm sóc chúng ta. Trong các phiên bản mới nhất macOS Bạn không thể tự ý chèn mã ngoại lai vào quá trình khởi động. Các lập trình viên của Apple đã ngăn chặn hành vi phá hoại này. Chính xác hơn, họ đã ngăn chặn nó một nửa: khi lệnh chờ của trình điều khiển được chèn vào, nhưng bản thân trình điều khiển thì không, mọi thứ sẽ bị treo.
Người sành sỏi nên làm gì trước khi cài driver? Đầu tiên, đưa ra lệnh:
csrutil statusNếu để đáp lại nó, chúng tôi nhận được:
Trạng thái Bảo vệ tính toàn vẹn của hệ thống: đã bật.
thì điều này có nghĩa là các lập trình viên giỏi của Apple quan tâm đến chúng ta, vì vậy sẽ không có kết quả gì cho chúng ta cho đến khi chúng ta vô hiệu hóa sự bảo vệ tuyệt vời của họ. Để thực hiện việc này, hãy khởi động lại vào phân vùng khôi phục (⌘R), gọi terminal và ra lệnh:
csrutil disableSau đó, chúng tôi khởi động lại vào hệ thống làm việc, sau đó chỉ cài đặt trình điều khiển, đồng thời tiện ích cấu hình ATTO (về nguyên tắc, tiện ích cấu hình chỉ cần để chẩn đoán và không cần thiết trong quá trình hoạt động bình thường). Đồng thời, khi được hỏi, chúng tôi xác nhận ủy quyền ATTO trong cài đặt hệ thống. Sau khi cài đặt, bạn có thể khởi động lại vào phân vùng recovery và ra lệnh
csrutil enableApple đang chăm sóc chúng tôi một lần nữa.
Bây giờ chúng tôi có giao diện được hỗ trợ bởi trình điều khiển cho các thiết bị SAS bên ngoài (hoặc FC, nếu sử dụng bộ chuyển đổi FC). Nhưng làm thế nào để làm việc với băng ở mức logic?
Như những người thiếu kinh nghiệm nhưng uyên bác đều biết, bất kỳ hệ thống tương thích Unix nào cũng hỗ trợ ổ băng từ ở cấp độ hạt nhân và các tiện ích hệ thống cơ bản, chủ yếu bao gồm mt (quản lý băng từ) và tar (trình lưu trữ hỗ trợ làm việc với các kho lưu trữ trên băng) . Tuy nhiên, một bộ óc tinh vi có thể nói gì về điều này? Bất kỳ hệ thống tương thích Unix nào, ngoài ra macOS. Apple đã quan tâm đến chúng tôi bằng cách loại bỏ hỗ trợ cho các thiết bị băng từ mã của nó.
Nhưng liệu có thực sự không thể khôi phục lại đoạn mã này bằng cách chuyển đổi các tiện ích Unix mã nguồn mở tiêu chuẩn sang hệ thống khác hay không? macOSTin tốt là Tolis (mà tôi sẽ không dẫn link đến) đã thực hiện điều này trong sản phẩm Tolis Tape Tools của họ. Tin xấu là công ty này tính phí 399 đô la cho việc sử dụng sản phẩm của họ. Ước tính về mức phí này có thể khác nhau, nhưng cá nhân tác giả không sẵn sàng trả 400 đô la cho một đoạn mã phần lớn được viết bởi những người khác và đã được sử dụng công khai từ những năm 1970, vì vậy tác giả coi vấn đề này đã được giải quyết. (Nhân tiện, có một dự án mã nguồn mở bị bỏ hoang, vẫn đang hoạt động một cách mơ hồ trên GitHub.) trong cùng một chủ đề).
May mắn thay, có IBM, một tập đoàn với tham vọng kinh doanh ở quy mô hoàn toàn khác và do đó không thể hiện ở những vấn đề tầm thường. Cụ thể, họ đã phát triển hệ thống tệp băng từ mã nguồn mở LTFS, được phân phối, trong số những thứ khác, cho macOS.
Lưu ý ở đây là các nhà sản xuất thiết bị băng khác nhau phát hành phiên bản LTFS của riêng họ để hỗ trợ thiết bị của họ. Do tác giả sử dụng ổ băng từ IBM nên đã cài đặt LTFS từ IBM. Ổ đĩa của bên thứ ba có thể yêu cầu cổng LTFS của riêng họ. Và có một triển khai phổ biến openLTFS trên Github và Homebrew.
Điều quan trọng đối với chúng tôi là LTFS sử dụng chức năng phân vùng phương tiện và do đó có thể hoạt động với các thiết bị và hộp mực bắt đầu từ thế hệ LTO-5.
Vì vậy, trong trường hợp của chúng tôi, chúng tôi tải xuống sản phẩm IBM Spectrum Archive Single Drive Edition từ trang web của IBM. macOSBao gồm cả việc triển khai LTFS. Chúng tôi cài đặt sản phẩm mà không gặp bất kỳ khó khăn nào bằng trình cài đặt riêng của nó. Trong quá trình này, nó cũng cài đặt gói FUSE, mặc dù bạn sẽ phải xác nhận quyền hạn của một lập trình viên tài ba tên là Anatol Pomozov trong cài đặt hệ thống, người mà trong trường hợp này, toàn bộ hệ thống IBM phụ thuộc vào. Kính trọng và ngưỡng mộ người đàn ông này.
Nên viết ngay dòng này vào file /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:
tùy chọn sync_type ổ đĩa đơn=time@1
trong đó chỉ định rằng băng được gắn theo mặc định và bộ đệm ghi được đặt lại sau 1 phút không hoạt động (mặc định là 5 phút).

Cuối cùng, mọi thứ đã sẵn sàng để kết nối. Chúng tôi kết nối chuỗi: Mac – Bộ chuyển đổi T3/T2 – Cáp Thunderbolt – Bộ chuyển đổi ATTO – Cáp SAS – ổ băng (việc lựa chọn một số cổng trên máy Mac, bộ chuyển đổi và ổ đĩa không quan trọng). Bật nguồn của bộ chuyển đổi. Bật nguồn cho ổ băng từ. Chúng ta đợi ổ đĩa khởi tạo hoàn tất theo chỉ dẫn của nó.
Chúng tôi đưa ra lệnh:
ltfs -o device_listHoan hô! Chúng tôi nhận được (theo cách chẩn đoán thông thường của IBM):
307 LTFS14000I LTFS khởi động, LTFS phiên bản 2.4.2.0 (10418), nhật ký cấp 2.
307 LTFS14058I Đặc tả định dạng LTFS phiên bản 2.4.0.
307 LTFS14104I Được khởi chạy bởi "ltfs -o device_list".
307 LTFS14105I Tệp nhị phân này được xây dựng cho Mac OS X.
Phiên bản 307 LTFS14106I GCC là 4.2.1 Tương thích Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Phiên bản hạt nhân: Darwin Kernel Phiên bản 19.4.0: Thứ Tư ngày 4 tháng 22 28:40:2020 PST 6153.101.6; gốc:xnu-15~86/RELEASE_X64_XNUMX.
Plugin 307 LTFS17085I: Đang tải phần phụ trợ băng “iokit”.
Danh sách thiết bị băng:.
Tên thiết bị = 0, ID nhà cung cấp = IBM, ID sản phẩm = ULT3580-TD5, Số sê-ri = **********, Tên sản phẩm = [ULT3580-TD5].
Đưa cassette vào, đợi nó tải và định dạng:
mkltfs -d 0 -nTest -r "size=10M/name=.DS_Store"Ở đây tham số -d chỉ định số ổ đĩa (luôn bằng 10 nếu nó là số duy nhất, nhưng không thể bỏ qua trong lệnh này), -n là tên băng (bạn có thể bỏ qua) và tham số -r yêu cầu đặt nội dung của các tệp .DS_Store không vượt quá kích thước XNUMX megabyte, trong phần chỉ mục (tức là dành cho các thư mục) của băng thay vì phần dữ liệu.
Cuộc sống bí ẩn bắt đầu từ ổ băng. Chúng tôi đợi vài phút và nhận được phản hồi sau:
LTFS15000I Bắt đầu mkltfs, LTFS phiên bản 2.4.2.0 (10418), nhật ký cấp 2.
LTFS15041I Được khởi chạy bởi "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Tệp nhị phân này được xây dựng cho Mac OS X.
Phiên bản LTFS15043I GCC là 4.2.1 Tương thích Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
Phiên bản hạt nhân LTFS17087I: Phiên bản hạt nhân Darwin 19.4.0: Thứ Tư ngày 4 tháng 22 28:40:2020 PST năm 6153.101.6; gốc:xnu-15~86/RELEASE_X64_XNUMX.
LTFS15003I Thiết bị định dạng '0'.
Kích thước khối âm lượng LTFS15004I LTFS: 524288.
LTFS15005I Chính sách vị trí phân vùng chỉ mục: size=10M/name=.DS_Store.LTFS11337I Cập nhật cờ bẩn chỉ mục (1) - NO_BARCODE (0x0x1021081e0).
Plugin LTFS17085I: Đang tải phần phụ trợ băng “iokit”.
LTFS30810I Mở thiết bị thông qua trình điều khiển iokit (0).
ID nhà cung cấp LTFS30814I là IBM.
ID sản phẩm LTFS30815I là 'ULT3580-TD5'.
LTFS30816I Bản sửa đổi phần sụn là H976.
Ổ đĩa nối tiếp LTFS30817I là **********.
LTFS17160I Kích thước khối thiết bị tối đa là 1048576.
LTFS11330I Nạp hộp mực.
LTFS30854I Bảo vệ khối logic bị tắt.
LTFS11332I Tải thành công.
LTFS17157I Thay đổi cài đặt ổ đĩa sang chế độ ghi ở mọi nơi.
LTFS15049I Kiểm tra phương tiện (gắn kết).
LTFS30854I Bảo vệ khối logic bị tắt.
LTFS15010I Tạo phân vùng dữ liệu b trên phân vùng SCSI 1.
LTFS15011I Tạo phân vùng chỉ mục a trên phân vùng SCSI 0.
LTFS17165I Đặt lại tỷ lệ dung lượng của phương tiện.
LTFS11097I Phân vùng phương tiện.
LTFS11100I Ghi nhãn vào phân vùng b.
LTFS11278I Ghi chỉ mục vào phân vùng b.
LTFS30808I READ_ATTR (0x8c) trả về -20501.
LTFS30865I READ_ATTR trả về Trường không hợp lệ trong CDB (-20501) 0.
LTFS30836I Không thể đọc thuộc tính (-20501).
LTFS11336I Thuộc tính không tồn tại. Bỏ qua lỗi dự kiến.
LTFS17235I Ghi chỉ mục của NO_BARCODE vào b (Lý do: Định dạng, 0 file) **********.
LTFS17236I Viết chỉ mục NO_BARCODE (b, **********).
LTFS11337I Cập nhật cờ bẩn chỉ mục (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Ghi nhãn vào phân vùng a.
LTFS11278I Ghi chỉ mục vào phân vùng a.
LTFS30808I READ_ATTR (0x8c) trả về -20501.
LTFS30865I READ_ATTR trả về Trường không hợp lệ trong CDB (-20501) 0.
LTFS30836I Không thể đọc thuộc tính (-20501).
LTFS11336I Thuộc tính không tồn tại. Bỏ qua lỗi dự kiến.
LTFS17235I Ghi chỉ mục của NO_BARCODE vào a (Lý do: Định dạng, 0 tệp) 9068025555.
LTFS17236I Đã viết chỉ mục của NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.LTFS15019I Dung lượng ổ đĩa là 1425 GB.
LTFS30854I Bảo vệ khối logic bị tắt.
LTFS15024I Medium được định dạng thành công.
Gắn băng được định dạng:
sudo mkdir /Volumes/LTFS
sudo chmod 777 /Volumes/LTFS/
sudo ltfs /Volumes/LTFSChúng tôi có thêm vài phút vận hành và chẩn đoán ổ đĩa:
307 LTFS14000I LTFS khởi động, LTFS phiên bản 2.4.2.0 (10418), nhật ký cấp 2.
307 LTFS14058I Đặc tả định dạng LTFS phiên bản 2.4.0.
307 LTFS14104I Được khởi chạy bởi “ltfs /Volumes/LTFS/”.
307 LTFS14105I Tệp nhị phân này được xây dựng cho Mac OS X.
Phiên bản 307 LTFS14106I GCC là 4.2.1 Tương thích Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Phiên bản hạt nhân: Darwin Kernel Phiên bản 19.4.0: Thứ Tư ngày 4 tháng 22 28:40:2020 PST 6153.101.6; gốc:xnu-15~86/RELEASE_X64_XNUMX.
307 LTFS14063I Loại đồng bộ hóa là “thời gian”, Thời gian đồng bộ hóa là 60 giây.
Plugin 307 LTFS17085I: Đang tải phần phụ trợ băng “iokit”.
307 LTFS17085I Plugin: Đang tải chương trình phụ trợ iOS "hợp nhất".
307 LTFS14095I Đặt chế độ ghi ở mọi nơi của thiết bị băng để tránh phóng hộp mực ra.
307 LTFS30810I Mở thiết bị thông qua trình điều khiển iokit (0).
307 LTFS30814I ID nhà cung cấp là IBM.
307 LTFS30815I ID sản phẩm là 'ULT3580-TD5'.
307 LTFS30816I Bản sửa đổi chương trình cơ sở là H976.
307 LTFS30817I Ổ đĩa nối tiếp là **********.
307 LTFS17160I Kích thước khối thiết bị tối đa là 1048576.
307 LTFS11330I Nạp hộp mực.
307 LTFS30854I Bảo vệ khối logic bị tắt.
307 LTFS11332I Tải thành công.
307 LTFS17157I Thay đổi cài đặt ổ đĩa sang chế độ ghi ở mọi nơi.
307 LTFS11005I Gắn âm lượng.
307 LTFS30854I Bảo vệ khối logic bị tắt.
307 LTFS17227I Thuộc tính băng: Nhà cung cấp = IBM.
307 LTFS17227I Thuộc tính băng: Tên ứng dụng = LTFS.
307 LTFS17227I Thuộc tính băng: Phiên bản ứng dụng = 2.4.2.0.
307 LTFS17227I Thuộc tính băng: Nhãn trung bình =.
307 LTFS17228I Thuộc tính băng: ID bản địa hóa văn bản = 0x81.
307 LTFS17227I Thuộc tính băng: Mã vạch =.
307 LTFS17227I Thuộc tính băng: Phiên bản định dạng ứng dụng = 2.4.0.
307 LTFS17228I Thuộc tính băng: Trạng thái khóa âm lượng = 0x00.
307 LTFS17227I Thuộc tính băng: Tên nhóm phương tiện =.
307 LTFS14111I Quá trình thiết lập ban đầu đã hoàn tất thành công.
307 LTFS14112I Gọi lệnh 'mount' để kiểm tra kết quả thiết lập cuối cùng.
307 LTFS14113I Điểm gắn kết được chỉ định sẽ được liệt kê nếu thành công.
Và đây là dải băng của chúng ta trên màn hình nền, có tên là Test(ltfs)! Băng chưa được đặt tên sẽ được đặt tên là OSXFUSE Volume 0 (ltfs).
Bây giờ bạn có thể làm việc với nó.

Nói chung, bạn cần lưu ý rằng không nên lạm dụng việc xem nội dung của các thư mục băng trong cửa sổ công cụ tìm, vì đây là một thao tác cực kỳ tốn kém đối với LTFS, nhưng tốt hơn là bạn nên làm việc với các lệnh đầu cuối hoặc đơn giản là đặt lại thư mục sao lưu hàng loạt vào băng, như minh họa trong cửa sổ bên trên.
Nhân tiện, có một tiện ích IBM được viết đặc biệt ltfs_copy và các bản sao của nó, được thiết kế để sao chép hiệu quả hơn giữa băng và đĩa, nhưng cho đến nay tác giả vẫn chưa thể tìm thấy chúng trong phạm vi công cộng bằng cách tìm kiếm hời hợt.
Bạn có thể tháo băng bằng lệnh:
umount /Volumes/LTFShoặc chỉ cần ném nó vào thùng rác.
Thực tế, có một số lớp vỏ đồ họa trong tự nhiên dành cho macOS Để đơn giản hóa những thao tác này, nhưng sau những hành vi sai trái như vậy, liệu chúng ta có nên sợ hãi khi gõ vài dòng lệnh vào terminal không?
Là một tác dụng phụ, chúng tôi có cơ hội kết nối các ổ eSATA bên ngoài thông qua cáp SAS/4*eSATA.

Nguồn: www.habr.com
