LUKS-зашифрованный текстовый файл искажен

У меня были серьезные проблемы с действительно работающими с живым USB, а также живой DVD на новом ноутбуке без каких-либо проблем, его HD работает нормально, но я хотел пробуть системы Linux, не изменяя систему загрузки на мой HD.

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

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

Друг сказал мне, что живой CD может, по крайней мере, с Ubuntu, использоваться в «постоянном» режиме, так что после выключения и включения некоторых ваших предпочтений и т. Д. Действительно сохраняется. Но мой ноутбук на Live Fedora разбился, пытаясь скачать изображение Ubuntu .... А по второй попытке он был поврежден, поэтому я просто отказался от попытки прожить живой компакт-диск или живой USB.

Так что мой совет не делает это, кроме как временная аварийная мера.

0
04.09.2014, 05:54
2 ответа

Вот быстрый и грязный тест памяти, написанный на 'C'. Если повреждение диска связано с отказом памяти, то это можно легко проверить.

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

time { make -s CFLAGS="-Wall -Werror -std=c99" mymemtest && free -m && ./mymemtest && free -m && echo "PASS" || echo "FAIL" ; }

   #include <stdio.h>
   #include <stdlib.h>
   #include <stdint.h>
   #include <assert.h>

int main()
   {
   fprintf(stderr,"\n");
   fprintf(stderr,"sizeof(int)=%ld, sizeof(void*)=%ld\n", sizeof(int), sizeof(void*) );

   double TESTSIZE = 2.2; // amount of memory to test in GB
   uint64_t K=1024; // used to define a GB

   typedef uint64_t T;
   uint64_t sizebytes=TESTSIZE*K*K*K;
   uint64_t size = sizebytes/sizeof(T);
   T * a = malloc(sizebytes);
   assert( a != NULL );
   fprintf(stderr,"sizebytes=%ld, size=%ld, chunk size=%ld, test size=%g GB\n", sizebytes, size, sizeof(T), sizebytes/(double)(K*K*K) );

   fprintf(stderr,"writing...\n");  for ( uint64_t i=0; i<size; i++ ) a[i] = i;
   fprintf(stderr,"checking...\n"); for ( uint64_t i=0; i<size; i++ ) assert( a[i] == (T)i );

   fprintf(stderr,"writing...\n");  for ( uint64_t i=0; i<size; i++ ) a[i] = 0;
   fprintf(stderr,"checking...\n"); for ( uint64_t i=0; i<size; i++ ) assert( a[i] == (T)0 );

   fprintf(stderr,"writing...\n");  for ( uint64_t i=0; i<size; i++ ) a[i] = -1;
   fprintf(stderr,"checking...\n"); for ( uint64_t i=0; i<size; i++ ) assert( a[i] == (T)-1 );

   fprintf(stderr,"writing...\n");  for ( uint64_t i=0; i<size; i++ ) a[i] = 0x5A5A5A5A5A5A5A5AUL;
   fprintf(stderr,"checking...\n"); for ( uint64_t i=0; i<size; i++ ) assert( a[i] == (T)0x5A5A5A5A5A5A5A5AUL );

   fprintf(stderr,"writing...\n");  for ( uint64_t i=0; i<size; i++ ) a[i] = 0xA5A5A5A5A5A5A5A5UL;
   fprintf(stderr,"checking...\n"); for ( uint64_t i=0; i<size; i++ ) assert( a[i] == (T)0xA5A5A5A5A5A5A5A5UL );

   free(a);
   fprintf(stderr,"\n");
   return 0;
   }
0
28.01.2020, 04:59

путаница с файловой системой после приостановки (Ubuntu 13.10)

Я изолировал повторяющиеся проблемы с файловой системой, чтобы соотнести их с приостановкой работы ноутбука во время установки USB-диска с шифрованием LUKS. Обычно считается, что любой каталог, который я открыл в терминале, теперь пуст после возобновления работы с приостановлением. Вполне вероятно, что сохранение файла в такой каталог может привести к повреждению (но это произошло только один раз). Мое типичное решение - размонтировать диск перед тем, как приостановить работу, но иногда я забываю это сделать.

Я обнаружил, что очистка кэша исправляет файловую систему после возобновления:

sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'

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

0
28.01.2020, 04:59

Теги

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