hdiutil bị khai tử trong macOS 27 Golden Gate: Bước ngoặt gây tranh cãi của Apple
Apple chính thức thông báo không dùng công cụ hdiutil trên macOS 27 Golden Gate, thay thế bằng diskutil. Sự thay đổi này hứa hẹn tốc độ nhanh hơn nhưng vẫn còn nhiều thiếu sót và có thể phá vỡ các tập lệnh tự động hóa lâu năm của người dùng và nhà phát triển.
Apple vừa gây bất ngờ cho cộng đồng phát triển khi công bố kế hoạch loại bỏ hdiutil, công cụ dòng lệnh quen thuộc dùng để thao tác với file ảnh đĩa, trong phiên bản macOS 27 Golden Gate. Thông báo này nằm trong phần "WHAT'S NEW" của trang man dành cho hdiutil, đồng thời kèm theo một thông báo deprecation chính thức hướng người dùng chuyển sang sử dụng diskutil.
Sự thay thế còn nhiều lỗ hổng
Theo ghi nhận từ nhà phát triển Jeff Johnson trên blog Lapcat Software, hầu hết các tùy chọn của hdiutil đều được bảo toàn trong diskutil, dù tên gọi có khác đi. Tuy nhiên, một số tùy chọn quan trọng lại bị thiếu, điển hình là -puppetstrings – vốn được dùng để xuất chuỗi dữ liệu có cấu trúc cho các công cụ tự động hóa. Ngoài ra, các tùy chọn riêng cho lệnh hdiutil create -srcfolder cũng không được kế thừa đầy đủ.
Thử nghiệm thực tế: nhanh hơn nhưng chưa ổn
Johnson đã tiến hành so sánh trực tiếp hai công cụ bằng cách tạo bản sao lưu thư mục người dùng trên MacBook Pro chạy Sequoia. Kết quả cho thấy diskutil vượt trội về hiệu suất: thời gian hoàn thành trung bình chỉ khoảng 40–45 giây so với 110–115 giây của hdiutil. File .dmg tạo ra cũng nhỏ hơn đáng kể: 2.8 GB so với 2.89 GB.
Tuy nhiên, có một vấn đề gây khó chịu: diskutil không kích hoạt hộp thoại xác thực quản trị viên khi gặp file thuộc sở hữu của root. Trong khi hdiutil tự động hiện thông báo yêu cầu nhập mật khẩu để tiếp tục, diskutil chỉ đơn giản báo lỗi mà không giải thích lý do. Người dùng buộc phải tự tìm và xóa file gây cản trở để quá trình chạy thành công.
Khác biệt về nội dung và hướng phát triển
Khi so sánh hai file ảnh bằng FileMerge, người dùng nhận thấy diskutil không bao gồm thư mục ~/.Trash/ – tương đương với việc kích hoạt sẵn tùy chọn -scrub của hdiutil. Đây có thể là hành vi có chủ đích của Apple, nhưng cũng tiềm ẩn rủi ro cho những ai quen với việc giữ nguyên toàn bộ dữ liệu trong file ảnh.
"Tôi không hiểu vì sao Apple lại khai tử một công cụ hoạt động tốt như
hdiutilchỉ để chuyển sang một giải pháp còn nhiều thiếu sót. Điều này có thể phá vỡ hàng loạt tập lệnh và ứng dụng phụ thuộc vàohdiutiltrong nhiều năm qua." – Jeff Johnson viết trên blog.
Bài toán tương thích ngược
Một điểm đáng lo ngại là những ứng dụng gọi trực tiếp hdiutil sẽ ngừng hoạt động hoàn toàn nếu Apple loại bỏ công cụ này. Johnson từng phát triển ứng dụng Knox – chuyên dùng hdiutil để tạo ổ đĩa mã hóa – và cho rằng quyết định này đi ngược lại nhu cầu ổn định của người dùng chuyên nghiệp.
Bên cạnh đó, cả hdiutil lẫn diskutil vẫn còn tồn tại lỗi liên quan đến file .bnnsir của Siri trên macOS Sequoia. Trong báo cáo lỗi FB17162985, Johnson đã cung cấp các bước tái hiện lỗi một cách đầy đủ, nhưng Apple chỉ phản hồi bằng cách hỏi liệu lỗi có còn xảy ra trên bản beta mới hay không – và thậm chí còn yêu cầu gửi sysdiagnose từ iOS cho một lỗi trên macOS, điều mà Johnson cho là "khó hiểu".
Nhìn chung, việc chuyển dịch từ hdiutil sang diskutil là một bước đi táo bạo của Apple, đánh dấu sự thay đổi trong cách hệ điều hành quản lý ảnh đĩa. Nhưng để thực sự thuyết phục được cộng đồng phát triển, công cụ thay thế cần được hoàn thiện hơn về mặt báo lỗi, xác thực và khả năng tương thích ngược.