Điểm:3

Ubuntu 21.10 - Sự cố GDM - màn hình đăng nhập

lá cờ bg

Tôi vừa nâng cấp máy tính để bàn của mình từ Ubuntu 21.04 lên 21.10. Mọi thứ đều hoạt động tốt! Tôi đã hạnh phúc.

Nhưng sau đó, tôi chạy một chương trình sai sẽ thay đổi hình nền của màn hình đăng nhập đồ họa thành một hình ảnh khác.

Rất có thể là Script mà tôi chạy: Tôi đã tải xuống chương trình sau trong ngày 21.04, cài đặt và chạy nó.

 github.com/thiggy01/gdm-background

 gdm-background/gdm-background-helper /


#!/usr/bin/env python3

nhập bản phân phối
nhập dbus
nhập dbus.service
từ dbus.mainloop.glib nhập DBusGMainLoop
từ gi.repository nhập GLib
đóng cửa nhập khẩu
từ cuộc gọi nhập quy trình con

lớp GDMBackground(dbus.service.Object):

    nếu distro.id() == 'ubuntu':
        default_theme = '/usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource'
    elif distro.id() == 'pop':        
        default_theme = '/usr/share/gnome-shell/theme/Pop/gnome-shell-theme.gresource'
    
    backup_theme = default_theme + '~'

    def __init__(self, conn=None, object_path=None, bus_name=None):
        dbus.service.Object.__init__(self, conn, object_path, bus_name)

    @dbus.service.method('xyz.thiggy01.GDMBackground', in_signature='s', out_signature='b',
        sender_keyword='người gửi', connection_keyword='conn')
    def SetImage(self, task, sender=None, conn=None):
        action_id = 'xyz.thiggy01.GDMBackground.SetImage'
        nếu self._check_polkit_privilege(sender, conn, action_id):
            nếu tác vụ == 'sao lưu':
                Shutil.copy(self.default_theme, self.backup_theme)
            nhiệm vụ elif == 'thiết lập':
                Shutil.move("/tmp/gdm3/theme/gnome-shell-theme.gresource", self.default_theme)
                trả về Đúng
        khác:
            trả về Sai

    @dbus.service.method('xyz.thiggy01.GDMBackground', in_signature='s', out_signature='b',
        sender_keyword='người gửi', connection_keyword='conn')
    def RestoreBackup(self, task, sender=None, conn=None):
        action_id = 'xyz.thiggy01.GDMBackground.RestoreBackup'
        nếu self._check_polkit_privilege(sender, conn, action_id):
            nếu tác vụ == 'khôi phục':
                Shutil.move(self.backup_theme, self.default_theme)
                trả về Đúng
        khác:
            trả về Sai

    @dbus.service.method('xyz.thiggy01.GDMBackground', in_signature='s', out_signature='',
        sender_keyword='người gửi', connection_keyword='conn')
    def RestartGDM(self, action_id, sender=None, conn=None):
            nếu self._check_polkit_privilege(sender, conn, action_id):
                cuộc gọi (['/usr/sbin/service', 'gdm', 'khởi động lại'])

    def _check_polkit_privilege(bản thân, người gửi, liên kết, action_id):
        nếu người gửi là Không có và conn là Không có:
            trở lại

        self.proxy_dbus = dbus.Interface(conn.get_object('org.freedesktop.DBus',
            '/org/freedesktop/DBus/Bus', Sai), 'org.freedesktop.DBus')
        sender_pid = self.proxy_dbus.GetConnectionUnixProcessID(người gửi)

        self.proxy_polkit = dbus.Interface(dbus.SystemBus().get_object(
            'org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority', Sai),
            'org.freedesktop.PolicyKit1.Authority')

        cố gắng:
            (is_auth, is_challenge, chi tiết) = self.proxy_polkit.CheckAuthorization(
                ('unix-process', {'pid': dbus.UInt32(sender_pid, variable_level=1),
                                  'thời gian bắt đầu': dbus.UInt64(0, variable_level=1)}),
                 action_id, {'':''}, dbus.UInt32(1), 'cancel')
            nếu là_auth:
                trả về Đúng
            khác:
                trả về Sai
        ngoại trừ lỗi dbus.DBusException:
            self.proxy_polkit.CancelCheckAuthorization('cancel')
            Quyên góp

nếu __name__ == '__main__':
   
    DBusGMainLoop(set_as_default=True)
    xe buýt = dbus.SystemBus()
    tên = dbus.service.BusName('xyz.thiggy01.GDMBackground', xe buýt)
    gdm_background_helper = GDMBackground(tên, '/xyz/thiggy01/GDMBackground')
    GLib.MainLoop().run()

Sau đó, Ubuntu 21.10 không thể tải màn hình đăng nhập đồ họa nữa.

Có một lỗi trên màn hình: Theo dõi khuôn mặt SAD với thông báo "Ồ không! Đã xảy ra sự cố." Đã xảy ra sự cố và hệ thống không thể khôi phục. Vui lòng liên hệ với quản trị viên hệ thống.

Tôi thử khắc phục sự cố bằng cách chạy Ubuntu 21.10 bằng chế độ khôi phục. Sau đó vào thư mục gốc và sử dụng các lệnh:

Sudo apt cài đặt ubuntu-gnome-desktop
trạng thái systemctl gdm
systemctl bắt đầu gdm

Nó không hoạt động chút nào.

Tôi nghi ngờ chương trình/tập lệnh tôi chạy có xung đột với việc thiết lập Gnome 40 với Ubuntu 21.04. Vui lòng giúp tôi lấy lại cài đặt màn hình đăng nhập GUI ban đầu.

Tôi cố gắng đăng nhập vào Ubuntu 21.04 bằng CTRL-SHIFT-F3. Sau đó, tôi gõ:

trạng thái systemctl gdm3

gdm.service đang hoạt động (đang chạy)
Đang khởi động Trình quản lý hiển thị Gnome.....

Nhưng có một thông báo lỗi:

Gdm: GdmDisplay: Phiên không bao giờ được đăng ký, không thành công
Gdm: Quá trình con -2037 đã chết.
lá cờ in
Bạn có thể [chỉnh sửa] câu hỏi của mình để bao gồm tên của chương trình hoặc nội dung của tập lệnh mà bạn đã chạy để thay đổi nền của màn hình đăng nhập không? Điều này có thể giúp ai đó đưa ra giải pháp cụ thể cho vấn đề của bạn.
Greenonline avatar
lá cờ us
Vui lòng [chỉnh sửa] câu hỏi của bạn và đặt thông tin ở đó, không phải trong các nhận xét.
John Lo avatar
lá cờ bg
Tôi chỉ cần làm, cảm ơn!
John Lo avatar
lá cờ bg
Cuối cùng, tôi đã gỡ cài đặt phiên gnome, máy tính để bàn gnome và gdm3 để có thể quay lại đăng nhập sddm - sử dụng KDE và XFCE. Ngay sau khi tôi cài đặt lại Gnome, sự cố vẫn tiếp diễn. Vui lòng đề xuất giải pháp, cảm ơn!
Điểm:2
lá cờ ps

Tôi đã từng gặp vấn đề tương tự. Trước tiên, bạn cần truy cập bảng điều khiển gốc phục hồi. Nhấn shift trái hoặc thoát trong khi khởi động nên làm điều đó. https://wiki.ubuntu.com/RecoveryMode

Những gì có thể là đủ

Tôi đã cài đặt lightdm, nhưng tôi không chắc liệu có cần cài đặt lightdm và chuyển về gdm3 hay không. Điều này có thể làm việc:

sudo apt cài đặt lại gdm3 gnome-shell yaru-theme-gnome-shell
khởi động lại dịch vụ sudo gdm3

Tôi đã làm gì

Đầu tiên tôi chạy tùy chọn khôi phục để đặt lại tệp gốc. Không có tác dụng. Tôi đã sử dụng một tập lệnh khác có cờ --restore, không phải mã Python mà bạn đã đăng. Có vẻ như cả hai chỉ làm điều này:

mv /usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource~ \
/usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource

Sau đó, tôi đã cài đặt lightdm.

# Nên cài đặt rồi hiện UI để chuyển từ gdm3 sang lightdm
sudo apt cài đặt lightdm

Đã khởi động lại và nó đã hoạt động, nhưng giao diện người dùng bị trục trặc khi tôi đăng nhập lại vào Gnome. Ví dụ: nhấn phím Super sẽ hiển thị hộp tìm kiếm ứng dụng, nhưng các biểu tượng được vẽ chồng chéo và nhấp nháy giống như sự cố bộ đệm khung. Lightdm cũng hiển thị phiên bản Ubuntu 21.04 ở góc dưới cùng bên trái. Tôi không nghĩ rằng lightdm + gnome được hỗ trợ đúng cách vào ngày 21.10.

Cuối cùng, tôi đã cài đặt lại gdm3, gnome-Shell và chủ đề yaru và chuyển từ lightdm trở lại gdm.

sudo apt cài đặt lại gdm3 gnome-shell yaru-theme-gnome-shell
# Chuyển về gdm3
Sudo dpkg-cấu hình lại gdm3 

Đã khởi động lại và mọi thứ hoạt động trở lại, vẫn là hình nền mặc định cho gdm3. Thật là tẻ nhạt khi nó yêu cầu hack để thay đổi hình nền, nhưng chúng ta đang ở đây.

John Lo avatar
lá cờ bg
Cảm ơn Người gọi9. Cảm tạ! Giải pháp của bạn hoạt động, tôi cài đặt lại ubuntu-gnome-desktop, cùng với gdm3 gnome-shell yaru-theme-gnome-shell. Bây giờ tôi có thể đăng nhập vào Gnome40 dưới GDM! Công cụ tuyệt vời .. nhiều đánh giá cao!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.