이상한 문제가 발견되었습니다 … 읽기 전용 NFS 공유에 상주하는 디스크 이미지 파일 (DMG)이있는 경우 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 공유가 읽기-쓰기 인 경우에도 잘 작동하지만 보안상의 이유로 그렇게 할 수 없습니다.
읽기 전용 NFS 공유에있는 DMG 파일을 어떻게 마운트 할 수 있습니까?
추가 정보:
/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#
답변
2012 년 11 월 이후이 질문에 관심을 보였으며 문제를 재현하기 위해 FreeNAS VM을 설정하기까지했습니다.
나는 결국 포기했지만 질문이 소생 된 이후로 내가 찾은 것을 마지막 시간 (운행하게도 VM을 삭제하지 않았습니다) 과이 문제의 원인이 무엇이라고 생각하는지 공유 할 것입니다. 또한 해결 방법을 찾았습니다.
내 설정
우선, 이것은 내 테스트 설정입니다.
-
OS X 10.8.2 (죄송합니다.
-
FreeNAS (FreeBSD 8.2-RELEASE-p1)
(OP 버전은 FreeBSD 8.2-RELEASE-p7입니다. 같은 버전을 찾을 수 없었습니다.)
-
다음의 NAS 파일 시스템
/mnt/raid
: -
이름이
netboot
다음과 같은 사용자 : -
다음
/mnt/raid/netboot
과 같이 내 보낸 AFP 파일 시스템 ( )netboot
:(읽기 전용으로 구성되어 있습니다).
-
NFS 파일 시스템 (OP의 구성과 일치하는 AFP 파일 시스템과 동일한 경로
/mnt/raid/netboot
) :
AFP는 작동하지만 NFS는 작동하지 않습니다
다음 netboot
과 함께 Finder를 사용하여 AFP 읽기 전용 파일 시스템을 사용자로 마운트했습니다 ⌘K.
문제없이 DMG 이미지 파일을 마운트했습니다.
$ sudo rm /private/var/netboot/Library-Shadow
$ sudo /usr/bin/hdiutil attach /Volumes/netboot/p7zip-9.04-0.i386.dmg -notremovable -shadow /private/var/netboot/Library-Shadow -owners on -noverify -noautofsck -nobrowse
Password:
/dev/disk3 Apple_partition_scheme
/dev/disk3s1 Apple_partition_map
/dev/disk3s2 Apple_HFS /Volumes/p7zip.pkg
그런 다음 마운트를 해제하고 읽기 전용 NFS 파일 시스템을 마운트했으며 (또한 사용 ⌘K) DMG 이미지 파일을 마운트 할 수 없었습니다.
문제가 여기에 기록되었다고 생각합니다.
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
오류 30은 다음을 의미합니다 (참조 man 2 intro
).
30 EROFS 읽기 전용 파일 시스템. 파일 또는 디렉토리를 수정하려고했으나 당시에는 읽기 전용 인 파일 시스템에서 수행되었습니다.
놀랍지 않게, 실제로 읽기 전용 파일 시스템이지만 AFP에 마운트 할 때 왜 작동합니까?
Apple의 NFS 구현에는 잠금에 문제가 있기 때문입니다. 이 글 에서 gluster.org에 명시된 바와 같이 :
OS X는 경이로운 양의 파일 잠금을 수행하며 (일부는 불필요하게) NFS 서버의 잠금 구성에 항상 민감합니다. 따라서 대기업에서 NFS 서버를 임의로 선택하면 진정한 성공 가능성은 거의 없습니다.
내 설정에서 NFS 서버 (즉, FreeNAS VM)가 갑자기 Mac에서 응답하지 않았습니다 /var/log/system.log
.
Mar 15 15:35:04 avallone.local rpc.lockd[8119]: Lockd got unexpected signal 20
Mar 15 15:35:04 avallone com.apple.launchd[1] (com.apple.lockd[8119]): Exited with code: 1
Mar 15 15:35:04 avallone com.apple.launchd[1] (com.apple.lockd): Throttling respawn: Will start in 10 seconds
(...)
Mar 15 15:35:07 avallone com.apple.launchd[1] (com.apple.statd[8121]): Exited with code: 1
Mar 15 15:35:07 avallone com.apple.launchd[1] (com.apple.statd): Throttling respawn: Will start in 10 seconds
Mar 15 15:35:13 avallone kernel[0]: nfs server 172.16.54.186:/mnt/raid/netboot: lockd not responding
Mar 15 15:35:13 avallone.local KernelEventAgent[72]: tid 00000000 received event(s) VQ_NOTRESP (1)
Mar 15 15:35:13 avallone.local KernelEventAgent[72]: tid 00000000 type 'nfs', mounted on '/Volumes/netboot', from '172.16.54.186:/mnt/raid/netboot', not responding
(...)
Mar 15 15:35:34 avallone.local KernelEventAgent[72]: tid 00000000 unmounting 1 filesystems
결과 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
는 다음과 같습니다.
CBSDBackingStore::setPermission: opening /Volumes/netboot/p7zip-9.04-0.i386.dmg
CBSDBackingStore::OpenLockFriendly: mapping flags 0x00000000 -> 0x00000014 (locks are MANDATORY)
CBSDBackingStore:OpenLockFriendly: could not open with lock 5
오류 5는 (에서 다시 man 2 intro
) 의미합니다 .
5 EIO 입출력 오류. 일부 물리적 입력 또는 출력 오류가 발생했습니다. 이 오류는 동일한 파일 디스크립터에서 후속 조작이 수행 될 때까지보고되지 않으며 후속 오류로 인해 손실 (덮어 쓰기) 될 수 있습니다.
전혀 놀랍지 않은 NFS 파일 시스템이 사라졌습니다.
해결 방법
해결 방법 (OS X 10.8에서 테스트)은 옵션을 사용하여 NFS를 마운트하는 것 nolocks,locallocks
입니다. gluster.org의 게시물에서 설명한 것처럼 이미 언급했습니다.
다행히도 네트워크 잠금을 해제하면 문제가 해결됩니다. Disk Utility NFS 마운팅 UI의 고급 옵션 필드에 “nolocks, locallocks”옵션을 추가하면됩니다. 그러나 많은 작업을 수행하면 / net으로 전혀 도움이되지 않습니다. / etc / auto_master를 편집하여 이러한 옵션을 / net 항목에 추가 할 수 있지만 다른 마운트에는 영향을 미치지 않지만 auto_master에서 hidefromfinder 옵션을 삭제하는 것이 좋습니다. 모든 자동 마운트를 수정하려면 /etc/autofs.conf를 편집하고 AUTOMOUNTD_MNTOPTS =로 시작하는 행을 검색하십시오. 이 옵션은 모든 마운트에 적용됩니다. nolocks, locallocks를 추가하면 재부팅 후 세계가 더 빠르고 행복해집니다.
수동으로 마운트 172.16.54.186:/mnt/raid/netboot
했으며 완벽하게 작동했습니다.
$ sudo rm /private/var/netboot/Library-Shadow
$ sudo mount -o nolocks,locallocks,ro 172.16.54.186:/mnt/raid/netboot /tmp/mnt
$ sudo /usr/bin/hdiutil attach /tmp/mnt/p7zip-9.04-0.i386.dmg -notremovable -shadow /private/var/netboot/Library-Shadow -owners on -noverify -noautofsck -nobrowse
/dev/disk6 Apple_partition_scheme
/dev/disk6s1 Apple_partition_map
/dev/disk6s2 Apple_HFS /Volumes/p7zip.pkg
나는 또한 이렇게 편집 /etc/auto_master
했다 :
+auto_master # Use directory service
#/net -hosts -nobrowse,hidefromfinder,nosuid
/net -hosts -nosuid,nolocks,locallocks
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
중지 및 시작 automountd
및 autofsd
:
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.automountd.plist
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.autofsd.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.autofsd.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.automountd.plist
매력처럼 일했습니다.
$ cd /net/172.16.54.186/mnt/raid/netboot
$ ls
Network Trash Folder Temporary Items p7zip-9.04-0.i386.dmg
$ sudo rm /private/var/netboot/Library-Shadow
$ sudo /usr/bin/hdiutil attach p7zip-9.04-0.i386.dmg -notremovable -shadow /private/var/netboot/Library-Shadow -owners on -noverify -noautofsck -nobrowse
/dev/disk7 Apple_partition_scheme
/dev/disk7s1 Apple_partition_map
/dev/disk7s2 Apple_HFS /Volumes/p7zip.pkg
답변
hdiutil attach -readonly…
읽기 전용 파일 시스템에 저장된 이미지 -readonly
의 경우 첨부 할 때 사용해야하는 것으로 간주합니다 .
AFP 사례는 예외적 일 수 있습니다.
다운 투표와 @Josh의 의견을 고려할 때 : -shadow
맨 페이지 의 일부를 다음과 같이 오해 했습니다 hdiutil
.
… 읽기 전용 이미지를 읽기 / 쓰기로 첨부 할 수 있습니다…
– 나는 그것을 -shadow
무시할 수 있다고 상상했다 -readonly
.