Ubuntu 9.04 и Wubi, что б ей…

5 мая, 22:49 / Ubuntu, Wubi, баг, массаракш

Юра — мой идеологический наставник — рассказал, что для Ubuntu есть такая штучка Wubi, которая позволяет устанавливать систему из-под Windows-а в обычный файл (образ диска) вместо настоящего раздела. И потом удобно загружать её через NTLDR. И так я решил посмотреть новую Ubuntu 9.04.

О первом горьком опыте работы рассказал ещё Юра. Он хотел установить Ubuntu на флешку, но Wubi отказалась запускаться. Вынимает флешку — запускается. Вставляет обратно — снова не хочет. По журналу он выяснил, что причина в русской метке раздела на флешке. Я попробовал воспроизвести — правда. Причем программа падает тихо, без каких либо уведомлений. Знающие о журнале работы обнаружат в нем что-то такое:

	05-05 22:09 ERROR  root: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
	Traceback (most recent call last):
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\application.py", line 54, in run
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\backend.py", line 153, in fetch_basic_info
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\win32\backend.py", line 73, in fetch_host_info
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\win32\backend.py", line 291, in get_drives
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\win32\drive.py", line 44, in __init__
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\win32\drive.py", line 74, in get_volume_information
	UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

Теперь о моих личных приключениях. Пришёл домой, прожёг образ Ubuntu 9.04 на CD-R, запустил установку через Wubi. Проходит несколько минут и я получаю такое сообщение:

	---------------------------
	Ubuntu Installer
	---------------------------
	An error occurred:

	Invalid argument

	For more information, please see the log file: c:\windows\temp\wubi-9.04-rev128.log
	---------------------------
	ОК
	---------------------------

В журнале информация малополезная:

	05-05 22:16 ERROR  TaskList: [Errno 22] Invalid argument
	Traceback (most recent call last):
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\tasklist.py", line 196, in __call__
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\utils.py", line 206, in copy_file
	IOError: [Errno 22] Invalid argument
	05-05 22:16 DEBUG  TaskList: # Cancelling tasklist
	05-05 22:16 ERROR  root: [Errno 22] Invalid argument

Тыкал и туда, и сюда. Искал по базе багов. Просто искал. Ничего. Взялся за изучение исходного кода. Оказалось, что Wubi обратно создает образ диска, который я прожёг, а потом ей что-то не удается прочесть в функции copy_file. В конце-концов от проблемы избавился так: положил образ ubuntu-9.04-desktop-i386.iso и wubi.exe в одну папку, запустил установку без диска. Всё хорошо.

Потом пришёл к Юле, что бы установить Ubuntu на её компьютер. Наученный предыдущим опытом я сразу проверил метки дисков на наличие неугодных Wubi символов. Положил образ и wubi.exe в одну папку, запустил. Огрёб:

	---------------------------
	Ubuntu Installer
	---------------------------
	Произошла ошибка:

	writelines() argument must be a sequence of strings

	Более подробную информацию смотрите в файле журнала: c:\windows\temp\wubi-9.04-rev128.log
	---------------------------
	ОК
	---------------------------

	05-05 22:11 ERROR  TaskList: writelines() argument must be a sequence of strings
	Traceback (most recent call last):
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\tasklist.py", line 196, in __call__
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\win32\backend.py", line 161, in copy_installation_files
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\utils.py", line 257, in replace_line_in_file
	TypeError: writelines() argument must be a sequence of strings
	05-05 22:11 DEBUG  TaskList: # Cancelling tasklist

МПиО показал, что причина в выбранном украинском языке. С английским тоже не работало. Только с русским.

Ладно, процесс пошёл. Но ненадолго. Wubi снова молча куда-то исчезла, лишь оставив в журнале следующее:

	05-05 22:50 ERROR  TaskList: 'ascii' codec can't decode byte 0xf1 in position 0: ordinal not in range(128)
	Traceback (most recent call last):
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\tasklist.py", line 196, in __call__
	  File "Z:\home\evan\bzr\wubi.trunk\build\wubi\files\lib\wubi\backends\common\backend.py", line 578, in create_preseed
	UnicodeDecodeError: 'ascii' codec can't decode byte 0xf1 in position 0: ordinal not in range(128)
	05-05 22:50 DEBUG  TaskList: # Cancelling tasklist

Я долго думал, МПиО-пил, искал. В результае оказалось, что причина в русском названии профиля пользователя Windows-а. Какой кошмар.

Кстати, смотрю вот, что сегодня ошибка с не-ASCII символами, кажется, была исправлена.

Ох, уж этот оупенсорс.

Добавлено. Вспомнил, что была ещё одна ошибка у Юли на компьютере: Wubi требовала наличия какого-то bcdedit.exe. Пришлось скачать и подсунуть.

Комментарии

Виталий 6 мая, 08:56
Жесткач крепчал. Ну и как Убунту тебе?
Sallkem 6 мая, 10:23
ех, ця бубунта :D 
AndrewRocker 7 мая, 20:37
Удивительно, что у тебя есть идеологический наставник :)
Димка 7 мая, 21:16
9 +  0 + 4 = 13 
Вот, и не верь потом в эти числа ;))
Димка 7 мая, 21:19
Юля не хочет написать стихотворение про Убунту?
Я даже боюсь представить, с чем это слово можно зарифмовать :))
Kauz 8 мая, 21:42
Димка, очень интересная идея! Ну, как минимум, 3 рифмы я уже придумала (:
Хотелось бы узнать, какая такая страшная рифма представилась тебе... (=
Димка 8 мая, 23:28
Ого, 3 рифмы, круто :) 
Тогда свою рифму, я сохраню на самый важный момент, когда именно ее не будет хватать для завершения стиха. И тогда появлюсь я, и спасу стих :) 
Максим Вуец 9 мая, 01:02
Виталий, Убунту хороша тем, что сразу «из коробки» многое
работает. Но если что-то не работает… Короче, ArchLinux
лучше всех (:
Kauz 9 мая, 02:46
Решила не портить этот чудесный блог своей пародией на стих, поэтому, кому интересно, можете прочесть его здесь http://blog.meta.ua/~julj08/posts/@220636/ (:
Alexey 15 мая, 17:27
У меня ошибка "Нет диска" выпала и что бы не жал всё висит и висит.

Помогло: в вирт вставил образ, запустил 129 ревизию вуби и много раз в окне ошибки жал продолжить, потом оно пропала и дальше уже установка пошла как обычно
hunter-12 10 ноября, 19:29
Alexey, у меня тоже выскакивала такая ошибка, перезапустил и всё пошло :)