Mac Lion: fstab является устаревшим. Итак, что заменяет его, чтобы предотвратить монтирование раздела?

If fstab является устаревшим в Lion (и раньше, я думаю?) как правильно предотвратить монтирование раздела при загрузке системы?

это слабо связано с этот вопрос которая по состоянию на этот пост не отвечать.

изменить:

так что мое замешательство исходит от чтения о fstab и говорят, чтобы изменить /etc/fstab.hd. Так.../etc/fstab это то, что мне нужно создать, и где я добавляю информацию UUID для предотвращения разделов от монтажа?

$ 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.
1
задан Community
09.04.2023 16:14 Количество просмотров материала 2847
Распечатать страницу

3 ответа

ни man fstab nor man diskarbitrationd (см. здесь например) упоминают об использовании /etc/fstab.

это не там по умолчанию, но почему это должно быть, если он просто был пуст, потому что значения по умолчанию хороши? Он там, если тебе понадобится.


утверждения об устаревании fstab уже некоторое время плавает по сети.

С здесь:

etc / fstab устарел в Леопард

С здесь:

Я собирался предложить отредактировать файл /etc/fstab, но, по-видимому, это было устаревшим в Leopard и, вероятно, теперь удалено из Snow Leopard...

кроме того, что в документации нет упоминания об устаревании,почему добавит ли Apple утилиты для правильного редактирования устаревших файлов конфигурации?

цитировать man vifs:

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

в то время как следующая программа работает (бесконечный цикл, Ctrl-C, чтобы выйти), диск не будет смонтирован, при надлежащих условиях вы можете контролировать его более мелкозернистый, конечно:

#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;
}

Сохранить как основной.c и компилировать, используя следующие (вам нужны инструменты разработчика):

cc main.c -o mountstopd -framework Foundation -framework DiskArbitration
28
отвечен Daniel Beck 2023-04-11 00:02

нет необходимости запускать программы или беспокоиться о том, где находится fstab.

просто запустите sudo vifs и добавьте соответствующие строки в файл. Мое: -

#
# 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

убедитесь, что вы знаете, как изменить и сохранить файл в Vim. Vimtutor научит вас основам.

PS / private / etc на самом деле то же самое, что и /etc. OS X обрабатывает url внутренне (это объясняется в документации API - хотя я до сих пор не понимаю, почему)

19
отвечен Milliways 2023-04-11 02:19

Так как у меня та же проблема, и я не нашел никакого приемлемого решения для этого, я написал небольшую службу демона запуска, которая предотвращает монтирование томов с указанными метками.

вот это: https://github.com/nanoant/mountblockd

2
отвечен Adaś 2023-04-11 04:36

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх