Вы можете попробовать отменить inode для каталога, но это оставит вас с целым загруженным сиротским файлом, который fsck выйдет из строя.
rm так же хорош, как и он.
Несколько человек упоминают краевые случаи, когда некоторые вещи быстрее других. Но давайте проверим, что мы сравниваем лучшие версии одних и тех же вещей.
Если вы хотите удалить каталог и все в нем, я предлагаю вам:
rm -rf path/to/directory
[d6 ] rm будет внутренне перечислять файлы и каталоги, которые он собирается удалить. И это все в компиляции C. Это две причины, по которым это происходит быстрее. Это очень заметно не то же самое, что rm -rf path/to/directory/*, которое внутренне на уровне оболочки и передает нагрузку аргументов в rm. Затем rm должен разбирать те, а затем рекурсировать от каждого. Это намного медленнее.
Точно так же, как «эталон», сравнивающий find path/to/directory -exec {} \;, вздор. Это запускает rm один раз за найденный файл. Так медленно. Найти аргументы команды xargs-style с помощью -exec rm {} +, но это так же медленно, как и расширение. Вы можете вызвать -delete, который использует внутренний вызов unlink в ядре (например, rm), но это будет работать только для файлов вначале.
Итак, повторим, если вы не выбросите диск в жидкую горячую магму, rm является королем.
В соответствующей заметке разные файловые системы удаляют вещи с разной скоростью из-за того, как они структурированы. Если вы делаете это на регулярной основе, вы можете захотеть сохранить эти файлы в разделе, отформатированном в XFS, который довольно быстро обрабатывает удаления.
Или используйте более быстрый диск. Если у вас много томов, использование /dev/shm (RAM-диск) может быть идеей.
Вы все на правильном пути. Я нашел способ, который является немного более чистой и лучшей формой.
Правильная опция добавления в fstab - nofail, однако она должна появиться после auto. Если вы измените его на noauto, он никогда не будет монтироваться во время загрузки. Если вы добавите nobootwait к загрузчику, вы можете пропустить что-то серьезное, например, установить раздел до того, как fsck завершит проверку его или не будет устанавливать раздел, который используется в процессе загрузки.
После внесения вышеуказанного изменения система начнет нормально (и смонтирует том), если устройство подключено, когда система выключена.
Единственное неудобство заключается в том, что если вы подключаете устройство во время работы системы, в зависимости от конфигурации (слишком много переменных для проверки), устройство может не монтироваться немедленно. Это можно устранить с помощью простых mount -a или mount /specific_device или перезагрузки.
опция noauto позволяет продолжить процесс загрузки?
он не монтируется автоматически, если присутствует, но он знает, если присутствует, поэтому работает простой mount / jgdata ... тогда скрипт mount / jdata не нуждается в проверке вывода, просто поймайте ошибка и сохранить загрузку
edit: при некотором последующем чтении bootwait, вероятно, более правильная опция для передачи ... (обычно используется для общих сетевых ресурсов, которые могут отсутствовать дольше в процессе загрузки, но это все равно может вызвать зависание, idk)
, и скрипт монтирования может быть добавлен так: https://stackoverflow.com/questions/2062543/running-a-script-with-the-help-of -grub-и-меню LST
У меня была такая же проблема - я сделал один дополнительный шаг
Если вы используете опцию nofail в /etc/fstab, система будет искать ваш диск (и раздел) во время загрузки , Если устройство подключено, файловая система будет смонтирована. Если нет, загрузка будет продолжаться как обычно.
См. Arch wiki: https://wiki.archlinux.org/index.php/Fstab
Пример
UUID=XXXXXXXXXXXXXXX /myhdd ntfs nofail,auto,noatime,rw,user 0 0
Я попытался загрузить систему с подключенным устройством и без него, и он работает нормально.
То, чего я не достиг, - это автоматизировать, когда диск вставлен после загрузки (когда isn ' t подключен к загрузке). Я должен использовать mount -a как root, чтобы снова установить все.
Рекомендуемый способ монтирования во время загрузки инструктирует их систему через файл fstab. Глядя на ваш запрос, я видел, что вы почти там, не хватает только инструкции, которая позволяет устройству использовать параметры automount, позволяя вашей системе монтировать устройство, когда оно доступно.
Итак, просто перепишите строку в вашем fstab, как показано ниже:
# <file system> <dir> <type> <options> <dump> <pass>
UUID="680C0FE30C0FAAE0" /jgdata ntfs user,auto,rw 0 0
После изменения и сохранения его попытайтесь установить вручную:
$ sudo mount -aВажно отметить, что:
вы должны быть уверены в UUID устройства. UUID генерируются утилитами make-filesystem (mkfs. *) При создании файловой системы. Те <options> должны быть написаны в соответствии с очень конкретным форматом, разделенным запятыми, но без пробелов после каждой запятой. Будьте осторожны с этим ;-) Я не уверен, что это будет работать гладко, потому что вы пытаетесь автоматизировать файловую систему NTFS, которые можно использовать с помощью утилит NTFS-3G. Хотя мои инструкции должны работать правильно, я никогда не пробовал автомонтировать NTFS раньше. Итак, если это не удалось, я рекомендую вам посмотреть этот раздел для монтирования Windows для альтернативного использования NTFS.Спасибо!
У меня такая же проблема. Я редактировал fstab, чтобы прокомментировать запись, когда я знаю, что я не буду иметь приставку в следующий раз при загрузке. Затем, когда у меня есть привод, я просто редактирую fstab, чтобы удалить комментарий и поставить mount -a. Это не идеальное решение. Было бы здорово, если бы я смог выяснить, как система автоматически смонтирует диск, если он присутствует, или автоматически пропускает его, если он отсутствует. Такая же проблема возникает, если у вас есть общие сетевые ресурсы NFS, а sever отсутствует.
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0
работал для меня.
nofail ... Не сообщайте об ошибках для этого устройства, если оно не существует. x-systemd.device-timeout = 30 ... Загрузка займет 30 секунд, если устройство не существует (по умолчанию 90 секунд).
Источник: https://wiki.archlinux.org/index .php / Fstab # External_devices
У меня такая же проблема. Я редактировал fstab, чтобы прокомментировать запись, когда я знаю, что я не буду иметь приставку в следующий раз при загрузке. Затем, когда у меня есть привод, я просто редактирую fstab, чтобы удалить комментарий и поставить mount -a. Это не идеальное решение. Было бы здорово, если бы я смог выяснить, как система автоматически смонтирует диск, если он присутствует, или автоматически пропускает его, если он отсутствует. Такая же проблема возникает, если у вас есть общие сетевые ресурсы NFS, а sever отсутствует.
У меня такая же проблема. Я редактировал fstab, чтобы прокомментировать запись, когда я знаю, что я не буду иметь приставку в следующий раз при загрузке. Затем, когда у меня есть привод, я просто редактирую fstab, чтобы удалить комментарий и поставить mount -a. Это не идеальное решение. Было бы здорово, если бы я смог выяснить, как система автоматически смонтирует диск, если он присутствует, или автоматически пропускает его, если он отсутствует. Такая же проблема возникает, если у вас есть общие сетевые ресурсы NFS, а sever отсутствует.
У меня такая же проблема. Я редактировал fstab, чтобы прокомментировать запись, когда я знаю, что я не буду иметь приставку в следующий раз при загрузке. Затем, когда у меня есть привод, я просто редактирую fstab, чтобы удалить комментарий и поставить mount -a. Это не идеальное решение. Было бы здорово, если бы я смог выяснить, как система автоматически смонтирует диск, если он присутствует, или автоматически пропускает его, если он отсутствует. Такая же проблема возникает, если у вас есть общие сетевые ресурсы NFS, а sever отсутствует.
У меня такая же проблема. Я редактировал fstab, чтобы прокомментировать запись, когда я знаю, что я не буду иметь приставку в следующий раз при загрузке. Затем, когда у меня есть привод, я просто редактирую fstab, чтобы удалить комментарий и поставить mount -a. Это не идеальное решение. Было бы здорово, если бы я смог выяснить, как система автоматически смонтирует диск, если он присутствует, или автоматически пропускает его, если он отсутствует. Такая же проблема возникает, если у вас есть общие сетевые ресурсы NFS, а sever отсутствует.
У меня такая же проблема. Я редактировал fstab, чтобы прокомментировать запись, когда я знаю, что я не буду иметь приставку в следующий раз при загрузке. Затем, когда у меня есть привод, я просто редактирую fstab, чтобы удалить комментарий и поставить mount -a. Это не идеальное решение. Было бы здорово, если бы я смог выяснить, как система автоматически смонтирует диск, если он присутствует, или автоматически пропускает его, если он отсутствует. Такая же проблема возникает, если у вас есть общие сетевые ресурсы NFS, а sever отсутствует.
/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0
работал для меня.
nofail ... Не сообщать об ошибках для этого устройства, если оно не существует. x-systemd.device-timeout = 30 ... Загрузка займет 30 секунд, если устройство не существует (по умолчанию 90 секунд).
Источник: https : //wiki.archlinux.org/index.php/fstab#External_devices
Рекомендуемый способ монтирования во время загрузки инструктирует их систему через файл fstab . Глядя на ваш вопрос, я видел, что вы почти там, не хватает только инструкции, которая позволяет устройству использовать параметры automount, позволяя вашей системе смонтировать устройство, когда оно доступно.
Итак, просто перепишите строку в вашем fstab, как показано ниже:
# <file system> <dir> <type> <options> <dump> <pass>
UUID="680C0FE30C0FAAE0" /jgdata ntfs user,auto,rw 0 0
После изменения и сохранения его попытайтесь установить его вручную:
$ sudo mount -a
blockquote>Важно отметить, что:
- вы должны быть уверены в UUID устройства. UUID генерируются утилитами make-filesystem (mkfs. *) При создании файловой системы.
- Те
<options>
должны быть записаны в соответствии с очень конкретным форматом, разделенным запятыми, но без пробелов после каждой запятой , Будьте осторожны с этим; -)- Я не уверен, что это будет работать плавно, потому что вы пытаетесь авторизовать файловую систему NTFS, которые можно обрабатывать с помощью утилиты NTFS-3G . Хотя мои инструкции должны работать правильно, я никогда не пробовал автомонтировать NTFS раньше. Итак, если это не удалось, я рекомендую вам посмотреть на это Установка разделов Windows для альтернативного использования NTFS.
Спасибо!
У меня была такая же проблема - я сделал один дополнительный шаг
Если вы используете опцию nofail
в /etc/fstab
, система будет искать ваш диск (и раздел) во время загрузки , Если устройство подключено, файловая система будет смонтирована. Если нет, загрузка будет продолжена как обычно.
См. Arch wiki: https://wiki.archlinux.org/index.php/Fstab
Пример
UUID=XXXXXXXXXXXXXXX /myhdd ntfs nofail,auto,noatime,rw,user 0 0
Я попытался загрузить систему с подключенным устройством и без него, и он работает нормально.
То, чего я не достиг, - это автоматизировать, когда диск подключен после загрузки (когда он не подключен при загрузке). Я должен использовать mount -a
как root, чтобы снова установить все.