& ldquo; Не удалось открыть / Не удалось загрузить изображение & rdquo; сообщения для файлов EFI

На основе поиска MD5 в сценарии Oli (спасибо!) я написал сценарий Python, который использует модуль eyeD3 для поиска MP3-файлов, поиска обложек альбомов из кеша Banshee и встраивания обложек внутри MP3-файлов. Он пропускает любые файлы, в которые уже встроено художественное произведение.

Это не идеально, но он работал примерно на 90% моих MP3-файлов, и вы можете вручную обрабатывать любые исключения с помощью EasyTag. В его подлиннике сценарий ожидает, что MP3-файлы станут двумя уровнями каталогов в глубине от целевого каталога (музыкальный корень / художник / альбом). Сценарий печатает отчет, когда он сделан, выделяя любые файлы, которые он не мог обработать или для которых он не мог найти обложки.

Очевидно, вам нужно установить Python и eyeD3 в используйте его:

#! /usr/bin/env python

import os, sys, glob, eyeD3, hashlib

CACHE_FILE_PREFIX = os.getenv("HOME") + "/.cache/media-art/album-"

def embedAlbumArt(dir = "."):
    artworkNotFoundFiles = []
    errorEmbeddingFiles = []
    noMetadataFiles = []
    mp3s = findMP3Files(dir)

    for mp3 in mp3s:
        print "Processing %s" % mp3

        tag = eyeD3.Tag()
        hasMetadata = tag.link(mp3)

        if not hasMetadata:
            print "No Metadata - skipping."
            noMetadataFiles.append(mp3)
            continue

        if hasEmbeddedArtwork(tag):
            print "Artwork already embedded - skipping."
            continue

        artworkFilename = findAlbumArtworkFile(tag)

        if not artworkFilename:
            print "Couldn't find artwork file - skipping."
            artworkNotFoundFiles.append(mp3)
            continue

        print "Found artwork file: %s" % (artworkFilename)

        wasEmbedded = embedArtwork(tag, artworkFilename)

        if wasEmbedded:
            print "Done.\n"
        else:
            print "Failed to embed.\n"
            errorEmbeddingFiles.append(mp3)

    if artworkNotFoundFiles:
        print "\nArtwork not found for:\n"
        print "\n".join(artworkNotFoundFiles)

    if errorEmbeddingFiles:
        print "\nError embedding artwork in:\n"
        print "\n".join(errorEmbeddingFiles)

    if noMetadataFiles:
        print "\nNo Metadata found for files:\n"
        print "\n".join(noMetadataFiles)

def findMP3Files(dir = "."):    
    pattern = "/".join([dir, "*/*", "*.mp3"])   
    mp3s = glob.glob(pattern)
    mp3s.sort()
    return mp3s

def hasEmbeddedArtwork(tag):
    return len(tag.getImages())

def findAlbumArtworkFile(tag):
    key = "%s\t%s" % (tag.getArtist(), tag.getAlbum())
    md5 = getMD5Hash(key)
    filename = CACHE_FILE_PREFIX + md5 + ".jpg"
    if os.path.exists(filename):
        return filename
    else:
        return 0

def getMD5Hash(string):
    string = string.encode("utf-8")
    md5 = hashlib.md5()
    md5.update(string)
    return md5.hexdigest()

def embedArtwork(tag, artworkFilename):
    tag.addImage(eyeD3.ImageFrame.FRONT_COVER, artworkFilename)
    success = 0
    try:
        success = tag.update()
    except:
        success = 0
    return success

if __name__ == "__main__":
    if len(sys.argv) == 1:
        print "Usage: %s path" % (sys.argv[0])
    else:
        embedAlbumArt(sys.argv[1])

1
задан 17 May 2018 в 10:04

3 ответа

На вашем компьютере используется прошивка EFI, а выход Boot Repair выглядит так, как будто компьютер пришел с установкой Windows, которую вы удалили и заменили на Ubuntu. Я знаю, что вы говорите, что это связано с «дистрибутивом Acer Linux», и именно поэтому я возглавляю то, что предлагает вывод Boot Repair, так как эти два не согласны. Мое подозрение заключается в том, что по какой-либо причине (возможно, неисправная прошивка) Acer установила свой загрузчик Linux таким образом, чтобы он выглядел как загрузчик Windows, и компьютер все еще пытается загрузиться через этот загрузчик. Другие изменения должны были удалить последующие программы загрузчика, в результате появляющиеся сообщения об ошибках.

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

Способ 1: Восстановление загрузки

Загрузите установочный носитель Ubuntu в режиме «попробуйте перед установкой». Запустить восстановление загрузки. Нажмите элемент «Дополнительные параметры». Выберите «Резервное копирование и переименование файлов EFI Windows». Нажмите «Применить», чтобы запустить восстановление загрузки.

Способ 2: rEFInd

Загрузите установочный носитель Ubuntu в режиме «попробуйте до установки». Создайте носитель, используя загруженное изображение. Запустить восстановление загрузки. Загрузиться с rEFInd-носителем. Нажмите элемент «Дополнительные параметры». Установите rEFInd с помощью пакета Debian или PPA. Выберите параметр «Резервное копирование и переименование файлов Windows EFI». Загрузите среду rEFInd, которую вы подготовили ранее, и загрузитесь в Ubuntu, как на шаге № 5. Нажмите «Применить», чтобы запустить восстановление загрузки. Перезагрузка. В любом случае появится rEFInd.

Вы можете дополнительно включить безопасную загрузку, и вы можете удалить избыточные файлы загрузчика из /boot/efi/EFI/*/ каталогов или отредактировать refind.conf в /boot/efi/EFI/refind/ или /boot/efi/EFI/Microsoft/Boot, чтобы раскомментировать и добавить загрузчики к каналам dont_scan_dirs или dont_scan_files.

2
ответ дан 18 July 2018 в 15:16

На вашем компьютере используется прошивка EFI, а выход Boot Repair выглядит так, как будто компьютер пришел с установкой Windows, которую вы удалили и заменили на Ubuntu. Я знаю, что вы говорите, что это связано с «дистрибутивом Acer Linux», и именно поэтому я возглавляю то, что предлагает вывод Boot Repair, так как эти два не согласны. Мое подозрение заключается в том, что по какой-либо причине (возможно, неисправная прошивка) Acer установила свой загрузчик Linux таким образом, чтобы он выглядел как загрузчик Windows, и компьютер все еще пытается загрузиться через этот загрузчик. Другие изменения должны были удалить последующие программы загрузчика, в результате появляющиеся сообщения об ошибках.

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

Способ 1: Восстановление загрузки

Загрузите установочный носитель Ubuntu в режиме «попробуйте перед установкой». Запустить восстановление загрузки. Нажмите элемент «Дополнительные параметры». Выберите «Резервное копирование и переименование файлов EFI Windows». Нажмите «Применить», чтобы запустить восстановление загрузки.

Способ 2: rEFInd

Загрузите установочный носитель Ubuntu в режиме «попробуйте до установки». Создайте носитель, используя загруженное изображение. Запустить восстановление загрузки. Загрузиться с rEFInd-носителем. Нажмите элемент «Дополнительные параметры». Установите rEFInd с помощью пакета Debian или PPA. Выберите параметр «Резервное копирование и переименование файлов Windows EFI». Загрузите среду rEFInd, которую вы подготовили ранее, и загрузитесь в Ubuntu, как на шаге № 5. Нажмите «Применить», чтобы запустить восстановление загрузки. Перезагрузка. В любом случае появится rEFInd.

Вы можете дополнительно включить безопасную загрузку, и вы можете удалить избыточные файлы загрузчика из /boot/efi/EFI/*/ каталогов или отредактировать refind.conf в /boot/efi/EFI/refind/ или /boot/efi/EFI/Microsoft/Boot, чтобы раскомментировать и добавить загрузчики к каналам dont_scan_dirs или dont_scan_files.

2
ответ дан 24 July 2018 в 20:35

На вашем компьютере используется прошивка EFI, а выход Boot Repair выглядит так, как будто компьютер пришел с установкой Windows, которую вы удалили и заменили на Ubuntu. Я знаю, что вы говорите, что это связано с «дистрибутивом Acer Linux», и именно поэтому я возглавляю то, что предлагает вывод Boot Repair, так как эти два не согласны. Мое подозрение заключается в том, что по какой-либо причине (возможно, неисправная прошивка) Acer установила свой загрузчик Linux таким образом, чтобы он выглядел как загрузчик Windows, и компьютер все еще пытается загрузиться через этот загрузчик. Другие изменения должны были удалить последующие программы загрузчика, в результате появляющиеся сообщения об ошибках.

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

Способ 1: Восстановление загрузки

Загрузите установочный носитель Ubuntu в режиме «попробуйте перед установкой». Запустить восстановление загрузки. Нажмите элемент «Дополнительные параметры». Выберите «Резервное копирование и переименование файлов EFI Windows». Нажмите «Применить», чтобы запустить восстановление загрузки.

Способ 2: rEFInd

Загрузите установочный носитель Ubuntu в режиме «попробуйте до установки». Создайте носитель, используя загруженное изображение. Запустить восстановление загрузки. Загрузиться с rEFInd-носителем. Нажмите элемент «Дополнительные параметры». Установите rEFInd с помощью пакета Debian или PPA. Выберите параметр «Резервное копирование и переименование файлов Windows EFI». Загрузите среду rEFInd, которую вы подготовили ранее, и загрузитесь в Ubuntu, как на шаге № 5. Нажмите «Применить», чтобы запустить восстановление загрузки. Перезагрузка. В любом случае появится rEFInd.

Вы можете дополнительно включить безопасную загрузку, и вы можете удалить избыточные файлы загрузчика из /boot/efi/EFI/*/ каталогов или отредактировать refind.conf в /boot/efi/EFI/refind/ или /boot/efi/EFI/Microsoft/Boot, чтобы раскомментировать и добавить загрузчики к каналам dont_scan_dirs или dont_scan_files.

2
ответ дан 31 July 2018 в 23:37

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

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