Подтвердить что ты не робот

Как смоделировать полную ошибку диска в среде Windows?

Мне нужно написать bat script для тестового сценария, в котором тестируемое программное обеспечение не может записываться в файл из-за полной ошибки диска. Тест script должен быть автоматизирован, чтобы мы могли его запускать на ночных тестах, например. Тест script также должен работать на разных компьютерах, поэтому установка программного обеспечения, такого как виртуальная машина, не будет лучшим решением в этом случае.

Как смоделировать эту ошибку в среде Windows?

4b9b3361

Ответ 1

Вы можете попробовать записать на полную дискету.

Edit:

В свете вашего отредактированного вопроса вы можете настроить сетевой ресурс без квоты на дисковое пространство и записать на него. Ошибка будет создана независимо от пользователя или машины, зарегистрированной в системе.

Ответ 2

Загрузите и установите TrueCrypt. Затем вы можете создать виртуальный раздел любого размера (несколько мегабайт), смонтировать его, а затем заполнить его несколькими документами.

Ответ 3

Для Windows XP или более поздней версии:

Эта команда может получить количество свободного места для c:\drive:

for /f "usebackq tokens=1-5" %%A in (`dir c:\ ^| find "bytes free"`) do (
    set FREE_SPACE=%%C
)

При необходимости замените c:\на ваш диск.

Затем вы можете отвлечься от этого значения, чтобы у вас было мало места для работы:

set /a FREE_SPACE=FREE_SPACE-1024

или сколько места вы хотите сохранить бесплатно.

Вы можете использовать команду fsutil, чтобы создать файл, чтобы заполнить свободное пространство на диске:

fsutil file createnew c:\spacehog.dat %FREE_SPACE%

Запустите тест, записывая диск. После того, как вы напишете 1024 байта или около того, вам нужно пробежать.

Ответ 4

Это может показаться немного, но я могу думать о том, чтобы использовать виртуальную машину и установить ее виртуальный диск достаточно большим, чтобы он соответствовал ОС. Заполните его некоторыми файлами мусора, чтобы опрокинуть его по краю, а затем запустите свою программу.

Ответ 5

Лучший вариант: Microsoft использует программу

Причины:

  • Он проверяет системный диск (против отдельного диска)
  • Он быстро запускает программу для быстрого заполнения диска , останавливается, когда больше не требуется
  • Это легко - не создавать и удалять файлы. Никакой дополнительный тестовый раздел не висит вокруг. Требуется установка, но после этого вы можете использовать простую команду.
  • Сценарий

Шаги:

Выход команды:

C:\Program Files (x86)\Windows Resource Kits\Tools>consume.exe
Universal Resource Consumer - Just an innocent stress program, v 0.1.0
Copyright (c) 1998, 1999, Microsoft Corporation

    consume RESOURCE [-time SECONDS]

RESOURCE can be one of the following:

    -physical-memory
    -page-file
    -disk-space
    -cpu-time
    -kernel-pool


C:\Program Files (x86)\Windows Resource Kits\Tools>consume.exe -disk-space
Consume: Message: Total disk space:         96049 Mb
Consume: Message: Free disk space:          14705 Mb
Consume: Message: Free per user space:      14705 Mb
Consume: Message: Attempting to use:        14705 Mb
Consume: Message: Reattempting to use:      14705 Mb
Consume: Message: Sleeping ...

Другие параметры:

  • Windows 7 имеет функцию виртуального жесткого диска. В основном выполните следующие действия: Управление компьютером > Управление дисками > Меню действий > Создать VHD > Щелкните правой кнопкой мыши и инициализируйте > Щелкните правой кнопкой мыши
  • Генерировать большие файлы (должны быть мгновенными), пока ваш диск не будет заполнен с помощью команды оболочки или Dummy File Generator. Еще одна программа: SpaceHog.

Ответ 6

Создайте дополнительный раздел, залейте его мусором и запустите там свою программу.

Ответ 8

Лучшее, что работает на каждом компьютере (так как тестирование не выполняется на специальной машине) было бы ramdrive/ramdisk, которое можно было бы установить на лету.

До сих пор найден только SDK Virtual Disk который может быть включен в ваш процесс buzild.

Разная идея: возможно, ваши тестовые компьютеры могут быть настроены для записи в общую сетевую папку (то есть полную) в качестве диска?

Ответ 9

Создайте новую учетную запись пользователя, установите квоту для нее и используйте runas для запуска вашего приложения в качестве этого пользователя. (не совсем то же самое, что и полный диск, но должен иметь схожие последствия.)

Ответ 10

Операционная система будет по-разному реагировать на заполнение системного диска, чем на другие диски, и, таким образом, ваше приложение тоже сделает это? Простое заполнение диска, независимо от того, что используется физический носитель, не будет точным тестом.

Вы не можете высмеять событие файловой системы для полного диска? Почему вы хотите подождать, пока диск будет заполнен? Разве вы не хотите периодически контролировать дисковое пространство и предупреждать пользователя, когда на диске есть процентный запас заполнения? Вместо того, чтобы ждать, пока дисковое пространство будет терминальным, просто запретите работу вашего приложения до тех пор, пока проблема не будет решена, но это не повлияет на любые данные IO и не будет восстановлено!

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

Ответ 11

Я сделал модификацию вышеприведенного script, чтобы сделать его совместимым с Windows 7... По существу добавляя переключатель "/-c" в оператор for. Это удаляет тысячи seperator, поскольку fsutil не нравится в инструкции.

for /f "usebackq tokens=1-5" %%A in (`dir /-c d:\ ^| find "bytes free"`) do (set FREE_SPACE=%%C)
fsutil file createnew d:\largefile.txt %FREE_SPACE%

Ответ 12

используйте очень маленькую цель iscsi