Как работает Ubuntu без корневого файла Wubi?

Это безумие, я знаю, мой недавний эксперимент подарил мне незабываемые впечатления, я обычно использую Ubuntu в качестве установки Wubi, потому что это легко сделать резервную копию моей системы 10.10 и попробовать новые версии без каких-либо проблем.

Так что после того, как я загрузился в Ubuntu 10.10, я могу переименовать, переместить или даже удалить свой корневой файл в каталоге / Host / ubuntu / Диски. Затем я загружал свою систему 11.10 напрямую, переименовывая текущий корневой файл 10.10 и копируя корневой файл 11.10. в тот же каталог,

Как это возможно, ubuntu полностью работает на Ram? или в другом месте есть кешированный корневой файл? Я в замешательстве,

Я думаю, что я могу даже удалить свой жесткий диск, когда Ubuntu работает (если диск подкачки не входит в тот же диск), но в Windows, это мечта !!!, как это это возможно?

1
задан 16 March 2012 в 08:09

1 ответ

В установке Wubi используются петлевые крепления . По сути, он монтирует вашу файловую систему Windows, а затем обрабатывает файл в этой файловой системе (ваш корневой файл) как блочное устройство. По сути, это означает, что вместо чтения блоков файловой системы непосредственно из раздела он ищет расположение файла в другой файловой системе, чтобы найти каждый отдельный блок. Система не работает из ОЗУ.

Затем выполняется некоторая гимнастика, чтобы файловая система, смонтированная на петле, выглядела как корень, а ваша файловая система Windows - где-то под корнем.

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

В системах UNIX, когда вы открываете файл для доступа, его все равно можно прочитать, не вызывая проблем. Рассмотрим следующий короткий пример Python:

import os

with open('oldname', 'w') as fp:
    fp.write('content')
with open('oldname', 'r') as fp:
    os.rename('oldname', 'newname')
    print(fp.read())

Как и в случае вашей файловой системы, смонтированной на петле, мы все равно можем прочитать содержимое после перемещения файла. Подобный эффект мы видим при удалении файла:

with open('newname', 'r') as fp:
    os.remove('newname')
    print(fp.read())

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

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

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

0
ответ дан 16 March 2012 в 08:09

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

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