losetup -d не завжди працює


0

Моя ОС - Slackware 13.1 (2.6.33.4-smp).

Я запускаю losetup -d $devв своєму власному сценарії як останній рядок, щоб звільнити якийсь створений в ньому циклічний пристрій. Однак, це не завжди працює, кажучи, що пристрій зайнятий, хоча з мого сценарію вже нічого не працює. Цей скрипт викликається багато разів один за одним. Іноді пристрій звільняється, іноді ні. Але якщо я поклав «сон 2» раніше, losetup -d $devто жодної проблеми не виникне. Здається, що "втрата" потребує певного часу чи чогось ... (не можу показати тобі результат losetup -a, не зараз на роботі)

Чи є спосіб змусити видалити якийсь циклічний пристрій? У вас є ідеї?

Відповіді:


0

Можливо, що доступ до пристрою є асинхронним, тому дані вашого пристрою монтажу / dd / що б ви не зробили для циклу все ще знаходяться в кеш-пам'яті і ось-ось будуть очищені. У цьому випадку syncслід допомогти (але може сповільнити всю систему до сканування, якщо інші операції з важкого введення-виводу тривають).

Залежно від випадку використання та середовища, простий цикл while ( while ! losetup -d $dev; do sleep 2; done) може бути кращим (хоча вам слід додати умову виходу після пари спроб).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.