Mac Lion: fstab kullanımdan kaldırıldı. peki bir bölmenin takılmasını önlemek için ne değiştirir?


39

Eğer fstabLion önerilmiyor (ve daha önce sanırım?) Nasıl bir, düzgün, sistem açılışta montaj bir bölümü engeller mi?

Bu, bu yayından itibaren hiçbir cevabı olmayan , bu soru ile gevşek bir şekilde ilişkilidir .

Düzenle:

Böylece benim kargaşam fstab hakkında okumaktan ve düzenlemesi anlatılmaktan geliyor /etc/fstab.hd. Peki ... /etc/fstaboluşturmam gerekenler ve bölmelerin montajını önlemek için UUID bilgilerini nereye ekliyorum?

$ cat /etc/fstab.hd 
IGNORE THIS FILE.
This file does nothing, contains no useful data, and might go away in
future releases.  Do not depend on this file or its contents.

Bunun için bir senaryo var ( yazar tarafından elma forumunda yayınlanmıştır ) - kullanımı basit, 10.9 ve 10.9.1 ile çalışılarak test edilmiştir.
Dmitry Verkhoturov

Kabul edilen cevap, fstab'ın kullanımdan kaldırıldığı varsayımını sorguluyor. Soruyu buna göre düzenlemeli miyiz?
DA Vincent

Yanıtlar:


29

Ne man fstabde man diskarbitrationd( örneğin buraya bakın ), kullanımdan kaldırıldığından bahsetmiyor /etc/fstab.

Varsayılan olarak orada bulunmuyor, ancak varsayılanlar iyi olduğu için boşsa neden olmasın? İhtiyacın olursa orada.


Kullanımdan kaldırılma iddiaları fstab, bir süredir web'de yüzüyor.

Gönderen burada :

etc / fstab, Leopard'da kullanımdan kaldırıldı

Gönderen burada :

/ Etc / fstab dosyasını düzenlemeyi önerecektim, ama görünüşe göre Leopard’da kullanımdan kaldırıldı ve muhtemelen Snow Leopard’dan kaldırıldı ...

Belgelerinde, kullanımdan kaldırılmadığı belirtilmesinin yanı sıra, Apple neden kullanımdan kaldırılmış yapılandırma dosyalarını düzgün bir şekilde düzenlemek için yardımcı programlar eklesin?

Alıntı yapmak man vifs:

NAME
     vifs -- safely edit fstab
[...]
HISTORY
     The vifs utility originates from Mac OSX 10.5.

Aşağıdaki program çalışırken (sonsuz döngü, çıkmak için Ctrl-C), hiçbir disk takılmayacaktır, uygun koşullar altında elbette daha iyi ayarlanmış kontrol edebilirsiniz:

#include <CoreFoundation/CoreFoundation.h>
#include <DiskArbitration/DiskArbitration.h>

DADissenterRef BlockMount(DADiskRef disk, void *context)
{
        DADissenterRef dissenter = DADissenterCreate(kCFAllocatorDefault, kDAReturnNotPermitted, CFSTR("forbidden!"));
        return dissenter;
}

int main (int argc, const char * argv[])
{
    DAApprovalSessionRef session = DAApprovalSessionCreate (kCFAllocatorDefault);
    if (!session)
    {
        fprintf(stderr, "failed to create Disk Arbitration session");
    }
        else
        {
        DARegisterDiskMountApprovalCallback(session, NULL, BlockMount, NULL);
        DAApprovalSessionScheduleWithRunLoop(session, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);

        while (true) {
            CFRunLoopRunInMode(kCFRunLoopDefaultMode, 60 /* seconds */, false);
        }

        DAApprovalSessionUnscheduleFromRunLoop(session, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
        DAUnregisterApprovalCallback(session, BlockMount, NULL);
        CFRelease(session);
    }
    return 0;
}

Main.c olarak kaydedin ve aşağıdakileri kullanarak derleyin (Geliştirici Araçlarına ihtiyacınız var):

cc main.c -o mountstopd -framework Foundation -framework DiskArbitration

İle benzer cron. Reddedilme yok, sadece varsayılan olarak kullanılmıyor. Bir fark var.
Daniel Beck

Ben kasıtlı olarak başvurulan sorunun bir kopyası olan kısmı yanıtlamıyorum.
Daniel Beck

Belki kafam karıştı, açıkçası! yukarıdaki düzenlemeye bakın . /etc/fstabve / etc / fstab.hd` ile arasındaki fark nedir? belki de bu benim kafamı karıştıracaktır.
Meltemi

1
@Meltemi: Tamamen farklı bir dosya ve ilgisiz. Örneğin buraya veya buraya bakın .
Daniel Beck

ic. /etc/fstabŞimdi gayet iyi çalışıyor . thx
Meltemi

20

Program çalıştırmaya veya fstab'ın bulunduğu yer hakkında endişelenmenize gerek yok.

Sadece sudo vifleri çalıştırın ve uygun satırları dosyaya ekleyin. Benimki:-

#
# Warning - this file should only be modified with vifs(8)
#
# Failure to do so is unsupported and may be destructive.
#
UUID=E00F307A-9295-482E-8A79-2FA2C922F3CD none ntfs rw,noauto
LABEL=Tempy none ntfs rw,noauto

Bir dosyayı nasıl değiştireceğinizi ve kaydedeceğinizi bildiğinizden emin olun. Vimtutor size temel bilgileri öğretecektir.

PS / private / etc aslında / etc ile aynıdır. OS X URL’yi dahili olarak işler (bu, API dokümantasyonunda açıklanmıştır - yine de nedenini hala anlamadım)


Paragon NTFS gibi bir üçüncü bölüm sürücü kullanıyorsanız, bu teknik değişiklik yapılmadan çalışmayabilir. Örneğin, bir Label (UUID'ler işe yaramaz) kullanmalıydım ve bunun yerine dosya sistemi tipi ufsd_NTFS olmalıydı. Daha standart seçenekler kullanılırsa hiçbir şey kırılmadı, işe yaramadı.
Zxaos,

İşe yaramadı fat32! Ben hem çalıştı UUIDve LABELde.
Necktwi

2

Aynı sorunu yaşadığım ve bunun için resonable bir çözüm bulamadığım için, birimlerin belirtilen etiketlerle monte edilmesini önleyen çok az sayıda lanse servisi yazdım.

İşte burada: https://github.com/nanoant/mountblockd


1
Adaś, mountblockd'da, plist birim adını gireceğini söylüyor. Ama aynı ada sahip iki cilt var. Pist onun yerine UUID alabilir mi?
Edward Ned Harvey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.