Я обнаружил странную проблему ... если у меня есть файлы образов дисков (DMG), которые находятся на общем ресурсе NFS только для чтения, я не могу открыть их в Mac OS X 10.7.5. Те же файлы открываются нормально при доступе через AFP. Тем не менее, попытка открыть их с помощью, hdiutil attach
когда они находятся в общем ресурсе NFS, приводит к «присоединению не удалось - файловая система только для чтения»:
bash-3.2# /usr/bin/hdiutil attach /Volumes/nfs_share/Some.dmg
hdiutil: attach failed - Read-only file system
Даже если общий ресурс AFP доступен только для чтения, я могу прикрепить те же изображения. Но по какой-то причине общий ресурс NFS только для чтения не работает.
В конечном итоге я хочу прикрепить изображения к теневому файлу , чтобы монтировать изображения только для чтения в режиме чтения-записи. Но это также терпит неудачу так же:
bash-3.2# /usr/bin/hdiutil attach /Volumes/nfs_share/Some.dmg -mountpoint /Somewhere -shadow /path/to/Some-Shadow
hdiutil: attach failed - Read-only file system
Опять же, это работает отлично, если изображение подается через AFP. Это также хорошо работает, если общий ресурс NFS предназначен для чтения и записи, но по соображениям безопасности я не могу этого сделать.
Как я могу подключить файлы DMG, которые находятся на общем ресурсе NFS только для чтения?
Дополнительная информация:
Соответствующая строка /etc/exports
на сервере FreeNAS (FreeBSD 8.2-RELEASE-p7):
/mnt/raid/netboot -alldirs -ro -mapall=netboot:netboot -network 10.100.0.0/16
Выход из /usr/bin/hdiutil attach -verbose /Volumes/netboot/Lion.nbi/Library.dmg -notremovable -shadow /private/var/netboot/Library-Shadow -owners on -noverify -noautofsck -nobrowse
:
Initializing…
DIBackingStoreInstantiatorProbe: interface 0, score 100, CBSDBackingStore
DIBackingStoreInstantiatorProbe: interface 1, score -1000, CBundleBackingStore
DIBackingStoreInstantiatorProbe: interface 2, score -1000, CRAMBackingStore
DIBackingStoreInstantiatorProbe: interface 3, score 100, CCarbonBackingStore
DIBackingStoreInstantiatorProbe: interface 4, score -1000, CDevBackingStore
DIBackingStoreInstantiatorProbe: interface 5, score -1000, CCURLBackingStore
DIBackingStoreInstantiatorProbe: interface 6, score -1000, CVectoredBackingStore
CBSDBackingStore::newProbe stat() failed. No such file or directory.
DIBackingStoreInstantiatorProbe: interface 0, score 1, CBSDBackingStore
DIBackingStoreInstantiatorProbe: interface 1, score -1000, CBundleBackingStore
DIBackingStoreInstantiatorProbe: interface 2, score -1000, CRAMBackingStore
DIBackingStoreInstantiatorProbe: interface 3, score -1000, CCarbonBackingStore
DIBackingStoreInstantiatorProbe: interface 4, score -1000, CDevBackingStore
DIBackingStoreInstantiatorProbe: interface 5, score -1000, CCURLBackingStore
DIBackingStoreInstantiatorProbe: interface 6, score -1000, CVectoredBackingStore
DIBackingStoreInstantiatorProbe: interface 0, score 100, CBSDBackingStore
DIBackingStoreInstantiatorProbe: interface 1, score -1000, CBundleBackingStore
DIBackingStoreInstantiatorProbe: interface 2, score -1000, CRAMBackingStore
DIBackingStoreInstantiatorProbe: interface 3, score 100, CCarbonBackingStore
DIBackingStoreInstantiatorProbe: interface 4, score -1000, CDevBackingStore
DIBackingStoreInstantiatorProbe: interface 5, score -1000, CCURLBackingStore
DIBackingStoreInstantiatorProbe: interface 6, score -1000, CVectoredBackingStore
Attaching…
Error 30 (Read-only file system).
Finishing…
DIHLDiskImageAttach() returned 30
hdiutil: attach failed - Read-only file system
Вывод rpcinfo -p
на NFS-сервер:
program vers proto port service
100000 4 tcp 111 rpcbind
100000 3 tcp 111 rpcbind
100000 2 tcp 111 rpcbind
100000 4 udp 111 rpcbind
100000 3 udp 111 rpcbind
100000 2 udp 111 rpcbind
100000 4 local 111 rpcbind
100000 3 local 111 rpcbind
100000 2 local 111 rpcbind
100005 1 udp 967 mountd
100005 3 udp 967 mountd
100005 1 tcp 967 mountd
100005 3 tcp 967 mountd
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100024 1 udp 689 status
100024 1 tcp 689 status
100021 0 udp 616 nlockmgr
100021 0 tcp 927 nlockmgr
100021 1 udp 616 nlockmgr
100021 1 tcp 927 nlockmgr
100021 3 udp 616 nlockmgr
100021 3 tcp 927 nlockmgr
100021 4 udp 616 nlockmgr
100021 4 tcp 927 nlockmgr
Вывод mount
на клиенте Mac OS X 10.7.5:
/dev/disk1s2 on / (hfs, local)
devfs on /dev (devfs, local, nobrowse)
afp_0egBhf12TAP01SptRt47XSdj-3.2c000002 on /private/var/netboot (afpfs, nobrowse)
afp_0egBhf12TAP01SptRt47XSdj-4.2c000004 on /Network/Applications (afpfs, read-only)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
afp_0egBhf12TAP01SptRt47XSdj-4.2c000008 on /Network/Servers/chef.farcry.sitepalette.com/Users (afpfs, nodev, nosuid, automounted, nobrowse, mounted by jnet)
afp_0egBhf12TAP01SptRt47XSdj-4.2c000009 on /Volumes/Users (afpfs, nodev, nosuid, mounted by jnet)
10.100.1.2:/mnt/raid/netboot on /Volumes/netboot (nfs)
И, наконец, вывод /usr/bin/hdiutil attach -debug /Volumes/netboot/Lion.nbi/Library.dmg -notremovable -shadow /private/var/netboot/Library-Shadow -owners on -noverify -noautofsck -nobrowse
:
calling DIHLDiskImageAttach with
skip-verify: true
auto-fsck: false
drive-options:
quiet: false
shadow-url: file://localhost/private/var/netboot/Library-Shadow
mount-nobrowse: true
enable-owners: true
verbose: false
debug: true
agent: hdiutil
fixed-disk: true
image-options:
main-url: file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
2012-11-27 12:02:23.053 hdiutil[23401:707] DIHLDiskImageAttach: input dictionary {
agent = hdiutil;
"auto-fsck" = 0;
debug = 1;
"drive-options" = {
};
"enable-owners" = 1;
"fixed-disk" = 1;
"image-options" = {
};
"main-url" = "file://localhost/Volumes/netboot/Lion.nbi/Library.dmg";
"mount-nobrowse" = 1;
quiet = 0;
"shadow-url" = "file://localhost/private/var/netboot/Library-Shadow";
"skip-verify" = 1;
verbose = 0;
}
2012-11-27 12:02:23.054 hdiutil[23401:707] DIHLDiskImageAttach: disabling legacy image format attach
2012-11-27 12:02:23.055 hdiutil[23401:707] DIHLDiskImageAttach: newImagekeys = {
"legacy-disabled" = 1;
}
2012-11-27 12:02:23.055 hdiutil[23401:707] DIHLDiskImageAttach: creating DIHelperProxy
2012-11-27 12:02:23.056 hdiutil[23401:707] with dictionary: {
agent = hdiutil;
"auto-fsck" = 0;
debug = 1;
"drive-options" = <62706c69 73743030 d0080000 00000000 01010000 00000000 00010000 00000000 00000000 00000000 0009>;
"enable-owners" = 1;
"fixed-disk" = 1;
"image-options" = <62706c69 73743030 d101025f 100f6c65 67616379 2d646973 61626c65 6409080b 1d000000 00000001 01000000 00000000 03000000 00000000 00000000 00000000 1e>;
"main-url" = "file://localhost/Volumes/netboot/Lion.nbi/Library.dmg";
"mount-nobrowse" = 1;
operation = DIHelperAttach;
quiet = 0;
"shadow-url" = "file://localhost/private/var/netboot/Library-Shadow";
"skip-verify" = 1;
verbose = 0;
}
2012-11-27 12:02:23.056 hdiutil[23401:707] [DIHelperProxy alloc]
2012-11-27 12:02:23.056 hdiutil[23401:707] [DIHelperProxy alloc] returning self 0x7fa39b00d690, retainCount 1
2012-11-27 12:02:23.057 hdiutil[23401:707] DIHLDiskImageAttach: running DIHelperProxy
2012-11-27 12:02:23.057 hdiutil[23401:707] [DIHelperProxy performOperationReturning] entry
2012-11-27 12:02:23.057 hdiutil[23401:707] [DIHelperProxy performOperationReturning] detaching thread
2012-11-27 12:02:23.058 hdiutil[23401:2803] [DIHelperProxy workerThread] entry
2012-11-27 12:02:23.058 hdiutil[23401:2803] [DIHelperProxy workerThread] setting up server
2012-11-27 12:02:23.059 hdiutil[23401:2803] [DIHelperProxy threadSetupServer] entry
2012-11-27 12:02:23.059 hdiutil[23401:2803] [DIHelperProxy threadSetupServer] setting up _headerConnection
2012-11-27 12:02:23.060 hdiutil[23401:2803] [DIHelperProxy threadSetupServer] setting up _headerConnection rootObject
2012-11-27 12:02:23.060 hdiutil[23401:2803] [DIHelperProxy threadSetupServer] adding NSConnectionDidInitializeNotification notification
2012-11-27 12:02:23.061 hdiutil[23401:2803] [DIHelperProxy threadSetupServer] exiting
2012-11-27 12:02:23.061 hdiutil[23401:2803] [DIHelperProxy workerThread] launching
2012-11-27 12:02:23.061 hdiutil[23401:2803] [DIHelperProxy threadLaunchToolAuthenticated] entry
2012-11-27 12:02:23.063 hdiutil[23401:2803] launching helper tool at "/System/Library/PrivateFrameworks/DiskImages.framework/Resources/diskimages-helper".
2012-11-27 12:02:23.063 hdiutil[23401:2803] [DIHelperProxy threadLaunchToolAuthenticated] adding NSTaskDidTerminateNotification notification
2012-11-27 12:02:23.063 hdiutil[23401:2803] [DIHelperProxy thread LaunchToolAuthenticated] launching
2012-11-27 12:02:23.065 hdiutil[23401:2803] [DIHelperProxy threadLaunchToolAuthenticated] exiting
2012-11-27 12:02:23.065 hdiutil[23401:2803] [DIHelperProxy workerThread] running runloop
2012-11-27 12:02:23.081 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] entry
2012-11-27 12:02:23.081 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] adding new NSConnectionDidDieNotification notification
2012-11-27 12:02:23.081 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] removing old NSConnectionDidDieNotification notification
2012-11-27 12:02:23.082 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] removing old connection rootObject
2012-11-27 12:02:23.082 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] invalidating old connection
2012-11-27 12:02:23.083 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] releasing old connection
2012-11-27 12:02:23.083 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] and replacing with new connection
2012-11-27 12:02:23.083 hdiutil[23401:2803] [DIHelperProxy helperConnectionInitialized] exit
2012-11-27 12:02:23.085 hdiutil[23401:2803] [DIHelperProxy connectToFramework] entry, helper 0x7fa39b016940
2012-11-27 12:02:23.085 hdiutil[23401:2803] [DIHelperProxy connectToFramework] exit
2012-11-27 12:02:23.186 hdiutil[23401:2803] [DIHelperProxy sendOperationToHelper] entry
2012-11-27 12:02:23.187 hdiutil[23401:2803] [DIHelperProxy sendOperationToHelper] starting operation with helper
2012-11-27 12:02:23.190 hdiutil[23401:2803] [DIHelperProxy sendOperationToHelper] exit
2012-11-27 12:02:23.194 hdiutil[23401:2803] [DIHelperProxy frameworkCallbackWithDictionary] entry
status proc called: initialize
Initializing…
myStatusProc: returning 0
2012-11-27 12:02:23.199 hdiutil[23401:2803] [DIHelperProxy frameworkCallbackWithDictionary] exit
2012-11-27 12:02:23.201 diskimages-helper[23407:2503] updateImageAndDriveDictionaries: before update _imageOptions: {
"enable-keychain" = 1;
writeable = 0;
}
2012-11-27 12:02:23.201 diskimages-helper[23407:2503] updateImageAndDriveDictionaries: _imageOptions: {
"enable-keychain" = 1;
"legacy-disabled" = 1;
writeable = 0;
}
2012-11-27 12:02:23.202 diskimages-helper[23407:2503] _driveOptions: {
"auto-fsck" = 0;
autodiskmount = 1;
removable = 0;
"unmount-timeout" = 0;
}
2012-11-27 12:02:23.202 diskimages-helper[23407:2503] DIHelperAttach: performOperation: initializing framework
2012-11-27 12:02:23.202 diskimages-helper[23407:2503] {
agent = hdiutil;
"auto-fsck" = 0;
"auto-fsck-failure-override-type" = callback;
"auto-open-ro-root" = 0;
"auto-open-rw-root" = 0;
"auto-stretch" = 0;
"bundlebs-checkpointing" = 0;
"bundlebs-localcloseonflush" = 0;
"bundlebs-localcloseonidle" = 0;
"bundlebs-localcloseonsleep" = 0;
"bundlebs-localfdcount" = 6;
"bundlebs-remotecloseonflush" = 0;
"bundlebs-remotecloseonidle" = 0;
"bundlebs-remotecloseonsleep" = 0;
"bundlebs-remotefdcount" = 3;
"burn-apple-supported-devices-only" = 0;
"burn-no-underrun-protection" = 0;
"burn-synthesize-content" = 1;
"bzip2-level" = 0;
"callback-with-sla" = 1;
debug = 1;
"disable-encrypted-images" = 0;
"disable-kernel-mounting" = 1;
"disable-owners" = 0;
"drive-options" = <62706c69 73743030 d0080000 00000000 01010000 00000000 00010000 00000000 00000000 00000000 0009>;
"enable-owners" = 1;
"filevault-default-case-sensitive-file-system" = "Case-sensitive Journaled HFS+";
"filevault-default-encryption-type" = "AES-128";
"filevault-default-file-system" = "Journaled HFS+";
"filevault-default-image-type" = SPARSEBUNDLE;
"filevault-default-partition-type" = SPUD;
"filevault-default-volume-name" = FileVault;
"fixed-disk" = 1;
"force-idme" = 0;
"hfsplus-stretch-parameters" = {
"hfsplus-stretch-allocation-block-size" = 4096;
"hfsplus-stretch-allocation-file-size" = 8388608;
"hfsplus-stretch-threshold" = 524288;
};
"idle-timeout" = 15;
"ifd-format" = UDZO;
"ifd-ignore-io-errors" = 1;
"ifd-segment-size" = 0;
"iff-format" = UDZO;
"iff-fs" = "HFS+";
"iff-layout" = SPUD;
"iff-source-owners" = auto;
"iff-spotlight-indexing" = 0;
"iff-temp-sparse-band-size" = 20480;
"iff-temp-use-rw-if-possible" = 1;
"iff-usehelper" = 1;
"ignore-bad-checksums" = 0;
"image-options" = <62706c69 73743030 d101025f 100f6c65 67616379 2d646973 61626c65 6409080b 1d000000 00000001 01000000 00000000 03000000 00000000 00000000 00000000 1e>;
"main-url" = "file://localhost/Volumes/netboot/Lion.nbi/Library.dmg";
"mount-attempted" = 1;
"mount-nobrowse" = 1;
"mount-point" = "/Volumes/";
"mount-private" = 0;
"mount-required" = 1;
"mount-type" = in;
"nbi-spotlight-indexing" = 0;
operation = DIHelperAttach;
"progress-delay" = 5;
"pthread-reader-cap" = 4;
quiet = 0;
"reauthenticate-upon-wake" = 1;
"shadow-url" = "file://localhost/private/var/netboot/Library-Shadow";
"skip-auto-fsck-for-system-images" = 1;
"skip-idme" = 1;
"skip-idme-reveal" = 0;
"skip-idme-trash" = 0;
"skip-previously-verified" = 1;
"skip-sla" = 0;
"skip-verify" = 1;
"skip-verify-locked" = 0;
"skip-verify-remote" = 1;
"sparsebundle-compactonidle" = 0;
"suppress-uiagent" = 1;
"unmount-timeout" = 0;
"use-compressed-xml" = 0;
"use-keychain" = 1;
verbose = 0;
"zlib-level" = 1;
}
DILoadDriver: checking for disk image driver
DILoadDriver: DI_kextExists() returned 0x00000000 (0)
DIIsInitialized: returning NO
2012-11-27 12:02:23.206 diskimages-helper[23407:2503] -checkForPreviouslyAttachedImage: entry
2012-11-27 12:02:23.206 diskimages-helper[23407:2503] imageURL file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
2012-11-27 12:02:23.206 diskimages-helper[23407:2503] shadowURL file://localhost/private/var/netboot/Library-Shadow
2012-11-27 12:02:23.207 diskimages-helper[23407:2503] sectionStart (null) sectionLength (null)
2012-11-27 12:02:23.207 diskimages-helper[23407:2503] checkForPreviouslyAttachedImage: setting legacy-disabled to 1
DIIsInitialized: returning YES
DIBackingStoreNewWithCFURL: entry with
file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
skip-permissions-check: true
legacy-disabled: true
DIBackingStoreInstantiatorProbe: entry
file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
skip-permissions-check: true
legacy-disabled: true
DIBackingStoreInstantiatorProbe: probing interface 0 CBSDBackingStore
CBSDBackingStore::newProbe score 100 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 1 CBundleBackingStore
CBundleBackingStore::newProbe score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 2 CRAMBackingStore
CRAMBackingStore::probe: scheme "file": not ram: or ramdisk: scheme.
CRAMBackingStore::probe: score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 3 CCarbonBackingStore
CCarbonBackingStore::newProbe: setting initial rval to +100
CCarbonBackingStore::newProbe score 100 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 4 CDevBackingStore
CDevBackingStore::newProbe: not /dev/disk or /dev/rdisk (/Volumes/netboot/Lion.nbi/Library.dmg).CDevBackingStore::newProbe score -1000 for
DIBackingStoreInstantiatorProbe: probing interface 5 CCURLBackingStore
CCURLBackingStore::probe: scheme is: file
CCURLBackingStore::probe: not recognized URL scheme.
CCURLBackingStore::probe: score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 6 CVectoredBackingStore
CVectoredBackingStore::newProbe not "vectored" scheme.
CVectoredBackingStore::newProbe score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: selecting CBSDBackingStore
DIBackingStoreNewWithCFURL: CBSDBackingStore
CBSDBackingStore::setNoFollow: setting _noFollow to 0
DIBackingStoreNewWithCFURL: instantiator returned 0
DIBackingStoreNewWithCFURL: returning 0
2012-11-27 12:02:23.208 diskimages-helper[23407:2503] -checkForPreviouslyAttachedImage: resolving file://localhost/Volumes/netboot/Lion.nbi/Library.dmg returned 0
DIIsInitialized: returning YES
DIBackingStoreNewWithCFURL: entry with
file://localhost/private/var/netboot/Library-Shadow
skip-permissions-check: true
DIBackingStoreInstantiatorProbe: entry
file://localhost/private/var/netboot/Library-Shadow
skip-permissions-check: true
DIBackingStoreInstantiatorProbe: probing interface 0 CBSDBackingStore
CBSDBackingStore::newProbe score 1 for file://localhost/private/var/netboot/Library-Shadow
DIBackingStoreInstantiatorProbe: probing interface 1 CBundleBackingStore
CBundleBackingStore::newProbe score -1000 for file://localhost/private/var/netboot/Library-Shadow
DIBackingStoreInstantiatorProbe: probing interface 2 CRAMBackingStore
CRAMBackingStore::probe: scheme "file": not ram: or ramdisk: scheme.
CRAMBackingStore::probe: score -1000 for file://localhost/private/var/netboot/Library-Shadow
DIBackingStoreInstantiatorProbe: probing interface 3 CCarbonBackingStore
CCarbonBackingStore::newProbe stat() failed. No such file or directory.
CCarbonBackingStore::newProbe score -1000 for file://localhost/private/var/netboot/Library-Shadow
DIBackingStoreInstantiatorProbe: probing interface 4 CDevBackingStore
CDevBackingStore::newProbe: not /dev/disk or /dev/rdisk (/private/var/netboot/Library-Shadow).CDevBackingStore::newProbe score -1000 for
DIBackingStoreInstantiatorProbe: probing interface 5 CCURLBackingStore
CCURLBackingStore::probe: scheme is: file
CCURLBackingStore::probe: not recognized URL scheme.
CCURLBackingStore::probe: score -1000 for file://localhost/private/var/netboot/Library-Shadow
DIBackingStoreInstantiatorProbe: probing interface 6 CVectoredBackingStore
CVectoredBackingStore::newProbe not "vectored" scheme.
CVectoredBackingStore::newProbe score -1000 for file://localhost/private/var/netboot/Library-Shadow
DIBackingStoreInstantiatorProbe: selecting CBSDBackingStore
DIBackingStoreNewWithCFURL: CBSDBackingStore
DIBackingStoreNewWithCFURL: instantiator returned 2
DIBackingStoreNewWithCFURL: returning 2
DIResolveURLToBackingStore: unable to resolve to any backing store class. 2.
2012-11-27 12:02:23.208 diskimages-helper[23407:2503] -checkForPreviouslyAttachedImage: resolving shadow file://localhost/private/var/netboot/Library-Shadow returned 2
2012-11-27 12:02:23.208 diskimages-helper[23407:2503] DIHelperAttach: performOperation: resolving disk image
DIIsInitialized: returning YES
DIIsInitialized: returning YES
DIBackingStoreNewWithCFURL: entry with
file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
legacy-disabled: true
writeable: false
enable-keychain: true
image-path: /Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: entry
file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
legacy-disabled: true
writeable: false
enable-keychain: true
image-path: /Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 0 CBSDBackingStore
CBSDBackingStore::newProbe score 100 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 1 CBundleBackingStore
CBundleBackingStore::newProbe score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 2 CRAMBackingStore
CRAMBackingStore::probe: scheme "file": not ram: or ramdisk: scheme.
CRAMBackingStore::probe: score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 3 CCarbonBackingStore
CCarbonBackingStore::newProbe: setting initial rval to +100
CCarbonBackingStore::newProbe score 100 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 4 CDevBackingStore
CDevBackingStore::newProbe: not /dev/disk or /dev/rdisk (/Volumes/netboot/Lion.nbi/Library.dmg).CDevBackingStore::newProbe score -1000 for
DIBackingStoreInstantiatorProbe: probing interface 5 CCURLBackingStore
CCURLBackingStore::probe: scheme is: file
CCURLBackingStore::probe: not recognized URL scheme.
CCURLBackingStore::probe: score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: probing interface 6 CVectoredBackingStore
CVectoredBackingStore::newProbe not "vectored" scheme.
CVectoredBackingStore::newProbe score -1000 for file://localhost/Volumes/netboot/Lion.nbi/Library.dmg
DIBackingStoreInstantiatorProbe: selecting CBSDBackingStore
DIBackingStoreNewWithCFURL: CBSDBackingStore
CBSDBackingStore::setPermission: opening /Volumes/netboot/Lion.nbi/Library.dmg
CBSDBackingStore::OpenLockFriendly: mapping flags 0x00000000 -> 0x00000014 (locks are MANDATORY)
CBSDBackingStore:OpenLockFriendly: could not open with lock 30
DIBackingStoreNewWithCFURL: instantiator returned 30
DIBackingStoreNewWithCFURL: returning 30
DIResolveURLToBackingStore: unable to resolve to any backing store class. 30.
DIResolveURLToDiskImage: resolving backing store/file encoding failed. 30.
2012-11-27 12:02:23.211 hdiutil[23401:2803] [DIHelperProxy frameworkCallbackWithDictionary] entry
status proc called: attach
Attaching…
Error 30 (Read-only file system).
myStatusProc: returning 0
2012-11-27 12:02:23.227 hdiutil[23401:2803] [DIHelperProxy frameworkCallbackWithDictionary] exit
2012-11-27 12:02:23.228 hdiutil[23401:2803] [DIHelperProxy frameworkCallbackWithDictionary] entry
status proc called: cleanup
Finishing…
myStatusProc: returning 0
2012-11-27 12:02:23.228 hdiutil[23401:2803] [DIHelperProxy frameworkCallbackWithDictionary] exit
2012-11-27 12:02:23.229 diskimages-helper[23407:2503] DIHelperAttach performOperation: returning 30
2012-11-27 12:02:23.229 diskimages-helper[23407:2503] -decrementBackgroundThreadCount: _backgroundThreadCount is now 0.
2012-11-27 12:02:23.229 diskimages-helper[23407:303] DIHelper _report_results: reporting {
payload = {
};
"result-code" = 30;
}
2012-11-27 12:02:23.230 hdiutil[23401:2803] reportResultsToFramework: proxy has finished operation
2012-11-27 12:02:23.230 hdiutil[23401:2803] reportResultsToFramework: results are: {
payload = {
};
"result-code" = 30;
}
2012-11-27 12:02:23.230 hdiutil[23401:2803] reportResultsToFramework: _threadResultsError is 30
2012-11-27 12:02:23.231 hdiutil[23401:2803] reportResultsToFramework: disconnecting from helper.
2012-11-27 12:02:23.231 diskimages-helper[23407:303] -setCanTerminate: main thread can exit
2012-11-27 12:02:23.332 hdiutil[23401:2803] [DIHelperProxy disconnectFromHelper] entry
2012-11-27 12:02:23.333 hdiutil[23401:2803] disconnectFromHelper: removing observers
2012-11-27 12:02:23.333 hdiutil[23401:2803] disconnectFromHelper: terminating proxy
2012-11-27 12:02:23.334 diskimages-helper[23407:303] DIHelper: terminateHelper: entry.
2012-11-27 12:02:23.334 hdiutil[23401:2803] disconnectFromHelper: terminated proxy
2012-11-27 12:02:23.335 hdiutil[23401:2803] [DIHelperProxy disconnectFromHelper] releasing helper
2012-11-27 12:02:23.335 hdiutil[23401:2803] [DIHelperProxy disconnectFromHelper] exit
2012-11-27 12:02:23.435 diskimages-helper[23407:303] [DIHelper frameworkConnectionDied] entry
2012-11-27 12:02:23.435 diskimages-helper[23407:303] [DIHelper frameworkConnectionDied] releasing connection
2012-11-27 12:02:23.435 diskimages-helper[23407:303] [DIHelper frameworkConnectionDied] releasing frameworkProxy
2012-11-27 12:02:23.435 diskimages-helper[23407:303] -DIHelperAgentMaster terminateUIAgentConnection.
2012-11-27 12:02:23.435 diskimages-helper[23407:303] [DIHelper frameworkConnectionDied] marking _frameworkDisconnected
2012-11-27 12:02:23.435 diskimages-helper[23407:303] [DIHelper frameworkConnectionDied] exiting
2012-11-27 12:02:24.232 hdiutil[23401:2803] [DIHelperProxy workerThread] removing NSConnectionDidDieNotification observers
2012-11-27 12:02:24.233 hdiutil[23401:2803] [DIHelperProxy workerThread] removing NSConnectionDidInitializeNotification observers
2012-11-27 12:02:24.234 hdiutil[23401:2803] [DIHelperProxy workerThread] removing NSTaskDidTerminateNotification observers
2012-11-27 12:02:24.234 hdiutil[23401:2803] [DIHelperProxy threadRunRunLoop] invalidating connection
2012-11-27 12:02:24.235 diskimages-helper[23407:303] DIHelper dealloc.
2012-11-27 12:02:24.234 hdiutil[23401:2803] [DIHelperProxy threadRunRunLoop] releasing connection
2012-11-27 12:02:24.235 diskimages-helper[23407:303] -DIHelperAgentMaster terminateUIAgentConnection.
2012-11-27 12:02:24.235 hdiutil[23401:2803] [DIHelperProxy workerThread] after running runloop
2012-11-27 12:02:24.235 diskimages-helper[23407:303] helper: child_after_exec returning 0
2012-11-27 12:02:24.235 hdiutil[23401:2803] [DIHelperProxy workerThread] waiting for task to terminate to avoid zombies
2012-11-27 12:02:24.236 hdiutil[23401:2803] [DIHelperProxy workerThread] releasing task
2012-11-27 12:02:24.236 hdiutil[23401:2803] [DIHelperProxy workerThread] exiting
2012-11-27 12:02:24.236 hdiutil[23401:707] [DIHelperProxy performOperationReturning] returning 30
2012-11-27 12:02:24.237 hdiutil[23401:707] DIHLDiskImageAttach: DIHelperProxy returned 30
2012-11-27 12:02:24.237 hdiutil[23401:707] [DIHelperProxy dealloc]
DIHLDiskImageAttach() returned 30
hdiutil: attach failed - Read-only file system
kyle:~ root#
fs_usage
чтобы посмотреть, смогу ли я перехватить файловую систему, выполняющую вызов записи - возможно, с ошибкой в Apple. Похоже, вы должны быть в состоянии прочитать DMG только для чтения - но, возможно, есть какая-то более глубокая техническая причина, по которой он выходит из строя, и ОС требуется более качественное сообщение об ошибке, чтобы сообщить нам, почему ...hdiutil
с-debug
переключателем, я могу опубликовать эти журналы здесьrpcinfo -p
на сервере? Что выводитсяmount
на вашем Mac? Можете ли вы также добавить в вопрос соответствующую строку/etc/exports
на сервере NFS?hdiutil -debug
и информацию, которую я запрашивал, к вашему вопросу?Ответы:
Я интересовался этим вопросом с ноября 2012 года и даже создал виртуальную машину FreeNAS, чтобы воспроизвести проблему.
В конце концов я сдался, но так как вопрос был реанимирован, я поделюсь тем, что узнал тогда и в последние часы (к счастью, я не удалил ВМ), и что я думаю, причина этой проблемы. Я также нашел обходной путь.
Моя настройка
Прежде всего, это моя тестовая установка:
OS X 10.8.2 (извините, нет версии 10.7.5).
FreeNAS (FreeBSD 8.2-RELEASE-p1)
(Версия OP - FreeBSD 8.2-RELEASE-p7 - я не смог найти ту же версию.)
Файловая система NAS в
/mnt/raid
:Пользователь с именем
netboot
:Файловая система AFP (
/mnt/raid/netboot
) экспортируется какnetboot
:(Обратите внимание, что он настроен только для чтения).
Файловая система NFS (тот же путь, что и файловая система AFP, чтобы соответствовать конфигурации OP:)
/mnt/raid/netboot
:AFP работает, NFS нет
Я смонтировал файловую систему только для чтения AFP как пользователь,
netboot
используя Finder с ⌘K:и без проблем смонтировал файл образа DMG:
Затем я размонтировал его и подключил файловую систему NFS только для чтения (я также использовал ⌘K) и не смог смонтировать файл образа DMG.
Я думаю, что проблема зарегистрирована здесь:
Ошибка 30 означает (см.
man 2 intro
):Неудивительно, что это действительно файловая система только для чтения, но ... при монтировании через AFP она работает, почему?
Поскольку реализация Apple NFS имеет некоторые проблемы с блокировкой. Как указано в этом посте на gluster.org:
В моей настройке сервер NFS (то есть виртуальная машина FreeNAS) неожиданно перестал отвечать на запросы (с моего компьютера Mac
/var/log/system.log
):Выход
sudo /usr/bin/hdiutil attach -debug /Volumes/netboot/p7zip-9.04-0.i386.dmg -notremovable -shadow /private/var/netboot/Library-Shadow -owners on -noverify -noautofsck -nobrowse
был:Ошибка 5 означает (снова из
man 2 intro
):что совсем не удивительно, файловая система NFS исчезла.
Временное решение
Обходной путь (проверенный на OS X 10.8) должен смонтировать NFS с опциями
nolocks,locallocks
. Как поясняется в посте на gluster.org, уже упоминалось:Я вручную смонтировал
172.16.54.186:/mnt/raid/netboot
и все заработало без нареканийЯ также отредактировал
/etc/auto_master
так:остановился и начал
automountd
иautofsd
:и работал как шарм
источник
nolocks,locallocks
он помогает повысить производительность NFS других общих папок NFS только для чтения с файлами DMG, так что спасибо!/Library
наш образ NetBoot в массив RAID. Это нам больше не нужно, когда мы приобрели новый сервер Mac Pro)хдиутил прикрепить -очень…
Я считаю, что для изображения, которое хранится в файловой системе только для чтения, его
-readonly
следует использовать во время прикрепления.(Случай AFP может быть исключительным.)
Принимая во внимание отрицательное голосование и комментарий @Josh: я неправильно понял
-shadow
часть справочной страницы дляhdiutil
:- Я представлял, что
-shadow
мог бы переопределить-readonly
.источник
-readonly
и-shadow
будет читать из теневого файла, но монтировать изображение только для чтения. Так, например, это позволит вам прочитать изменения, внесенные в теневой файл, без обновления этого теневого файла. Проблема была в блокировках NFS, как обнаружил jaume.