OpenPyxl will not work since it will removed chart formatting before saving the file. The reason why existing chart formatting is not kept is related to OpenPyxl's design. OpenPyxl is akin to a duplicate implementation of Excel for Linux and Mac OSes. It is not just calling existing COM and Excel-VBA features. Therefore, it will be difficult to add Excel's extensive chart formatting features to this library in a future update.
Here are some Linux libraries that might help.
xlutils.copy https://xlutils.readthedocs.io/en/latest/copy.html
pyexcelerator (older library)
https://sourceforge.net/projects/pyexcelerator/
See How to programmatically edit Excel sheets?
Yes, pywin32 requires Windows OS or a Windows emulation. It is the best way to work with Excel files since you get full access to all Windows COM objects and all Excel-VBA Worksheets objects (with slight modification at times).
Perhaps you can use pywin32 in a Windows Emulation to separate out the Chart Sheet objects, then use openpyxl to edit the worksheets in Linux, then finally re-assemble the workbook using pywin32? See sample pywin32 code below.
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb0 = excel.Workbooks.Open(r'C:\path\source.xlsx')
excel.Visible = True
# Move Chart 1 to a new Workbook, which becomes the ActiveWorkbook.
wb0.Charts('Chart1').Move()
excel.ActiveWorkbook.SaveAs(r'C:\path\chart1.xlsx')
excel.ActiveWorkbook.Close()
wb0.SaveAs(r'C:\path\no_charts.xlsx')
wb0.Close()
excel.Application.Quit()