libblkid библиотека: какой-либо способ использовать его с блоками в оперативной памяти?

Спецификация оболочки POSIX относится к простым командам , составным командам , позиции команды и команде команде .

Первые два ссылаются на способ/время синтаксического анализа и выполнения команды оболочки . Например,

#one compound command
{ simple command; simple command && simple command; } 

Составная команда - это то, сколько оболочка должна считывать в качестве входных данных перед оценкой и выполнением ее составляющих простых команд .

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

Команда команда может служить для перемещения команды из положения команды . Например, эти два варианта будут выполнены идентично, но потенциально будут проанализированы по-разному:

command simple command
simple command

-121--230587-

Единственный способ выполнить это - переместить «различные файлы» вверх на уровень, а затем удалить второй «com» каталог.

Пример

$ mv com/com/(various files) com/.
$ rmdir com/com

-121--133956-

Это указывает на то, что синхронизация между 2 членами RAID не синхронизирована друг с другом.

1. Исследуйте журналы

Я бы исследовал ваши журналы dmesg и выяснил, есть ли какие-либо сообщения о том, что на любом из физических жестких дисков, составляющих этот массив, произошел сбой оборудования.

2. Проверьте mdadm

Вы также можете проконсультироваться с mdadm с помощью переключателя -detail , чтобы узнать больше о ресинхронизации, например:

$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 26 09:14:11 2008
     Raid Level : raid1
     Array Size : 976759936 (931.51 GiB 1000.20 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Jan  1 01:29:16 2010
          State : clean, resyncing
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

 Rebuild Status : 50% complete

           UUID : 37a3bfcb:41393031:23c133e6:3b879f08
         Events : 0.2178969

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

Если оба устройства выглядят нормально, и вы не можете точно определить, какое устройство имеет проблему, вы можете временно запустить диагностическое средство, такое как HDAT2 или SpinRite для каждого жесткого диска, чтобы подтвердить их работоспособность.

3. Cabling

Если жесткие диски будут проверены, я начну изучать кабельную проводку, я, как правило, заменяю их.

4. Контроллер

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

5. Поставка питания

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

1
11.04.2014, 00:59
1 ответ
[117076] Я отвечаю на свой вопрос. Я смог сделать то, что хотел, используя пару функций из [117752]libblkid[117753] и [117754]mkstemp[117755]. Эта функция создает и открывает временный файл (на самом деле, в памяти). Нам нужно записать блок в этот файл и затем вызвать функцию [117756]blkid_probe_set_device[117757] с файловым дескриптором этого файла. Похоже, что библиотека довольна работой с этим искусственным файлом. Ниже приведен код (для простоты я опускаю все проверки ошибок):
  • 0
    28.01.2020, 01:58

    Теги

    Похожие вопросы